উত্তর:
গুগল এর TextInputLayout
অংশ হিসাবে প্রবর্তন করায় তৃতীয় পক্ষের পাঠাগারটি ব্যবহার করার দরকার নেই design-support-library
।
একটি মৌলিক উদাহরণ অনুসরণ করা:
<android.support.design.widget.TextInputLayout
android:id="@+id/text_input_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:errorEnabled="true">
<android.support.design.widget.TextInputEditText
android:id="@+id/edit_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Enter your name" />
</android.support.design.widget.TextInputLayout>
দ্রষ্টব্য: এর বৈশিষ্ট্য app:errorEnabled="true"
হিসাবে সেট করে TextInputLayout
কোনও ত্রুটি প্রদর্শিত হয়ে গেলে এর আকার পরিবর্তন হবে না - সুতরাং এটি মূলত স্থানটিকে অবরুদ্ধ করে।
অর্ডার নীচের ত্রুটিটি দেখানোর জন্য EditText
আপনি কেবল কল প্রয়োজন #setError
উপর TextInputLayout
(না শিশুটির ওপর EditText
):
TextInputLayout til = (TextInputLayout) findViewById(R.id.text_input_layout);
til.setError("You need to enter a name");
ত্রুটিটি আড়াল করতে এবং রঙটি পুনরায় সেট করতে কেবল কল করুন til.setError(null)
।
এটি ব্যবহার করতে TextInputLayout
আপনাকে আপনার build.gradle
নির্ভরতার সাথে নিম্নলিখিতগুলি যুক্ত করতে হবে :
dependencies {
compile 'com.android.support:design:25.1.0'
}
ডিফল্টরূপে লাইনটি EditText
লাল হবে। আপনার যদি আলাদা রঙ প্রদর্শন করতে হয় তবে আপনি কল করার সাথে সাথেই নীচের কোডটি ব্যবহার করতে পারেন setError
।
editText.getBackground().setColorFilter(getResources().getColor(R.color.red_500_primary), PorterDuff.Mode.SRC_ATOP);
এটিকে সাফ করার জন্য এই ফাংশনটিতে কেবল কল করুন clearColorFilter
:
editText.getBackground().clearColorFilter();
textInputLayout.setError("Error messsage")
করার সাথে সাথেই রঙটি EditText
লাল হয়ে যেতে হবে। এটি পুনরায় সেট করার জন্য, এটি কল করার জন্য যথেষ্ট textInputLayout.setError(null)
।
editText.getBackground().setColorFilter(getResources().getColor(R.color.red_500_primary), PorterDuff.Mode.SRC_ATOP);
সর্বশেষ সমর্থন লাইব্রেরিটির সাথে আর দরকার নেই
EditText
নয়, কল করে আমার এই সমস্যা হয়েছিল TextInputLayout
। আমি এই উত্তরটি দেখেছি এবং আমার কী পরিবর্তন করতে হবে তা এখনও বুঝতে পারি নি। খুব সহজ জিনিস মিস করতে।
আপনার EditText
একটি আবৃত করা উচিতTextInputLayout
<android.support.design.widget.TextInputLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/tilEmail">
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:inputType="textEmailAddress"
android:ems="10"
android:id="@+id/etEmail"
android:hint="Email"
android:layout_marginTop="10dp"
/>
</android.support.design.widget.TextInputLayout>
আপনি যেমন চান ত্রুটি বার্তা পেতে, ত্রুটি সেট করুন TextInputLayout
TextInputLayout tilEmail = (TextInputLayout) findViewById(R.id.tilEmail);
if (error){
tilEmail.setError("Invalid email id");
}
আপনার নকশা সমর্থন লাইব্রেরি নির্ভরতা যুক্ত করা উচিত। আপনার গ্রেড নির্ভরতা মধ্যে এই লাইন যুক্ত করুন
compile 'com.android.support:design:22.2.0'
রিভার্সের উত্তর দুর্দান্ত তবে এটি কীভাবে ভাসমান ত্রুটি টুলটিপ ধরণের জিনিসটি সরিয়ে ফেলা যায় তা নির্দেশ করে না
আপনার edittext.setError(null)
এটি অপসারণ করতে হবে।
এছাড়াও, যেমন কেউ নির্দেশ করেছেন, আপনার প্রয়োজন নেইTextInputLayout.setErrorEnabled(true)
বিন্যাস
<android.support.design.widget.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<EditText
android:id="@+id/edittext"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Enter something" />
</android.support.design.widget.TextInputLayout>
কোড
TextInputLayout til = (TextInputLayout) editText.getParent();
til.setError("Your input is not valid...");
editText.setError(null);
TextInputLayout til = (TextInputLayout)editText.getParent();
til.setErrorEnabled(true);
til.setError("some error..");
private EditText edt_firstName;
private String firstName;
edt_firstName = findViewById(R.id.edt_firstName);
private void validateData() {
firstName = edt_firstName.getText().toString().trim();
if (!firstName.isEmpty(){
//here api call for ....
}else{
if (firstName.isEmpty()) {
edt_firstName.setError("Please Enter First Name");
edt_firstName.requestFocus();
}
}
}
EditText
। আরও সম্ভবত, আপনার এমন কিছু প্রয়োজন হবে যা এটি মোড়ানোEditText
বা অন্যথায় যুক্ত করে। Github.com/rengwuxian/MaterialEditText দেখুন ।