سؤال

أود تعيين برمجيا maxLength ممتلكات TextView لأنني لا أرغب في ترميزه في التصميم. لا أستطيع رؤية أي set الطريقة المتعلقة maxLength.

هل يمكن لأي شخص أن يرشدني كيفية تحقيق ذلك؟

هل كانت مفيدة؟

المحلول

يجب أن يكون شيء من هذا القبيل. ولكن لم تستخدمه أبدًا لـ TextView ، فقط EditText:

TextView tv = new TextView(this);
int maxLength = 10;
InputFilter[] fArray = new InputFilter[1];
fArray[0] = new InputFilter.LengthFilter(maxLength);
tv.setFilters(fArray);

نصائح أخرى

جرب هذا

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)

لـ Kotlin ودون إعادة تعيين المرشحات السابقة:

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))
     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));
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top