validar style studio solo propiedades numeros example edittext java android android-edittext android-textview

java - style - textview android



.length() vs.getText(). length() vs.getText(). toString(). length() (3)

Por ejemplo, en el código debajo de a y b y c son iguales.

EditText editText; editText = (EditText) findViewById(R.id.edttxt); editText.setText("1234"); int a, b, c; a = editText.length(); b = editText.getText().length(); c = editText.getText().toString().length();

¿Cuál es la diferencia entre length() y getText().length() getText().toString().length() y getText().toString().length() ?


  1. length() : la función length() es un método heredado para EditView que EditView heredó TextView que devuelve la longitud, en caracteres, del texto administrado por este EditView . Por lo tanto, devolverá la longitud del texto que el usuario puso en el EditView EditView.

  2. getText().length() : aquí, en esta declaración, la función length() no pertenece a la clase EditView . En real, la función length() pertenece a la clase getText() porque getText() devuelve un objeto CharSequence . Entonces, nuevamente esta función length() devolverá el número de caracteres en esta secuencia.

  3. .getText().toString().length() : - aquí método toString() Convierta el objeto CharSequence en un objeto String simple e inmutable. Por lo tanto, aquí la función length() pertenece a String clase String que también devuelve la longitud del objeto String

Es una cuestión de rendimiento. length hará exactamente lo mismo que getText y la length que solo evita que getText() . Desde la clase TextView que se extiende EditText :

public CharSequence getText() { return mText; } /** * Returns the length, in characters, of the text managed by this TextView */ public int length() { return mText.length(); }

En cuanto a toString , es lo mismo, sin embargo, cualquier conversión que hagas ( CharSequence => String ) te costará un poquito en rendimiento (tan poco que probablemente no lo notarás).

Además, cuando conviertes cosas, debes buscar excepciones de puntero nulo, tal vez no en esta instancia, pero en términos generales.

Para contestar la pregunta, solo usa long ()


.length() y getText().length() son idénticos en su implementación actual .

.getText().toString().length() convertirá la CharSequence en una String simple, luego calculará su longitud. Yo esperaría que retorne el mismo valor que los otros dos en muchos casos. Sin embargo, si CharSequence es algo como un SpannedString , no puedo descartar la posibilidad de que exista algún tipo de intervalo de formato (por ejemplo, ImageSpan ) que afecte los cálculos de longitud.