আমি প্রোগ্রামগতভাবে এর maxLength
সম্পত্তি সেট করতে চাইTextView
বিন্যাসে হার্ড কোড করতে চাই না বলে আমি করতে চাই। আমি set
সম্পর্কিত কোনও পদ্ধতি দেখতে পাচ্ছি না maxLength
।
কেউ কীভাবে এটি অর্জন করতে পারে আমাকে গাইড করতে পারে?
আমি প্রোগ্রামগতভাবে এর maxLength
সম্পত্তি সেট করতে চাইTextView
বিন্যাসে হার্ড কোড করতে চাই না বলে আমি করতে চাই। আমি set
সম্পর্কিত কোনও পদ্ধতি দেখতে পাচ্ছি না maxLength
।
কেউ কীভাবে এটি অর্জন করতে পারে আমাকে গাইড করতে পারে?
উত্তর:
এরকম কিছু হওয়া উচিত। তবে এটি কখনও পাঠ্যদর্শন জন্য ব্যবহার করা হয়নি, কেবল সম্পাদনা পাঠ্য:
TextView tv = new TextView(this);
int maxLength = 10;
InputFilter[] fArray = new InputFilter[1];
fArray[0] = new InputFilter.LengthFilter(maxLength);
tv.setFilters(fArray);
editText.filters = arrayOf(*editText.filters, InputFilter.LengthFilter(10))
কোটলিনের সাথে পুরানো ফিল্টারগুলি রাখুন
এটা চেষ্টা কর
int maxLengthofEditText = 4;
editText.setFilters(new InputFilter[] {new InputFilter.LengthFilter(maxLengthofEditText)});
সহজ উপায় সীমা পাঠ্য অক্ষর সম্পাদনা করুন :
EditText ed=(EditText)findViewById(R.id.edittxt);
ed.setFilters(new InputFilter[]{new InputFilter.LengthFilter(15)});
আপনারা যারা কোটলিন ব্যবহার করছেন তাদের জন্য
fun EditText.limitLength(maxLength: Int) {
filters = arrayOf(InputFilter.LengthFilter(maxLength))
}
তারপরে আপনি কেবল একটি সাধারণ editText.limitLength (10) ব্যবহার করতে পারেন
জোও কার্লোস যেমন বলেছিলেন, কোটলিনে এটি ব্যবহার করুন:
editText.filters += InputFilter.LengthFilter(10)
Https://stackoverflow.com/a/58372842/2914140 এও দেখুনকিছু ডিভাইসগুলির অদ্ভুত আচরণ সম্পর্কে ।
( android:inputType="textNoSuggestions"
আপনার EditText
। যোগ করুন )
LengthFilter(10)
) মুছে ফেলা উচিত এবং তারপরে অন্য একটি ( LengthFilter(20)
) যুক্ত করা উচিত।
কোটলিনের জন্য এবং পূর্ববর্তী ফিল্টারগুলি পুনরায় সেট না করে:
fun TextView.addFilter(filter: InputFilter) {
filters = if (filters.isNullOrEmpty()) {
arrayOf(filter)
} else {
filters.toMutableList()
.apply {
removeAll { it.javaClass == filter.javaClass }
add(filter)
}
.toTypedArray()
}
}
textView.addFilter(InputFilter.LengthFilter(10))
আমি এটির জন্য একটি সাধারণ এক্সটেনশন ফাংশন করেছি
/**
* maxLength extension function makes a filter that
* will constrain edits not to make the length of the text
* greater than the specified length.
*
* @param max
*/
fun EditText.maxLength(max: Int){
this.filters = arrayOf<InputFilter>(InputFilter.LengthFilter(max))
}
editText?.maxLength(10)
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Title");
final EditText input = new EditText(this);
input.setInputType(InputType.TYPE_CLASS_NUMBER);
//for Limit...
input.setFilters(new InputFilter[] {new InputFilter.LengthFilter(3)});
builder.setView(input);
সেরা সমাধান আমি খুঁজে পেয়েছি
textView.setText(text.substring(0,10));
EditText
, তবে দশম প্রতীক (এক সময়) পরে কোনও পাঠ্য কেটে দেবে।
আসল ইনপুট ফিল্টারটি রাখতে, আপনি এটি এইভাবে করতে পারেন:
InputFilter.LengthFilter maxLengthFilter = new InputFilter.LengthFilter(100);
InputFilter[] origin = contentEt.getFilters();
InputFilter[] newFilters;
if (origin != null && origin.length > 0) {
newFilters = new InputFilter[origin.length + 1];
System.arraycopy(origin, 0, newFilters, 0, origin.length);
newFilters[origin.length] = maxLengthFilter;
} else {
newFilters = new InputFilter[]{maxLengthFilter};
}
contentEt.setFilters(newFilters);