Frage

würde ich programmatisch Satz maxLength Eigenschaft TextView mag, wie ich will nicht zu hart Code es im Layout. Ich kann sehen, jedes set Verfahren nicht auf maxLength bezogen.

Kann jemand Führer mir, wie dies zu erreichen?

War es hilfreich?

Lösung

Sollte so etwas sein. aber es nie für Textview, nur EditText:

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

Andere Tipps

Versuchen Sie diese

int maxLengthofEditText = 4;    
editText.setFilters(new InputFilter[] {new InputFilter.LengthFilter(maxLengthofEditText)});

Einfache Möglichkeit, Begrenzung bearbeiten Textzeichen :

EditText ed=(EditText)findViewById(R.id.edittxt);
ed.setFilters(new InputFilter[]{new InputFilter.LengthFilter(15)});

Für die von Ihnen mit Kotlin

fun EditText.limitLength(maxLength: Int) {
    filters = arrayOf(InputFilter.LengthFilter(maxLength))
}

Dann können Sie nur eine einfache editText.limitLength verwenden (10)

Für Kotlin und ohne vorherige Filter Zurücksetzen:

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);

beste Lösung, die ich gefunden

textView.setText(text.substring(0,10));
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top