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() ?
length(): la funciónlength()es un método heredado paraEditViewqueEditViewheredóTextViewque devuelve la longitud, en caracteres, del texto administrado por esteEditView. Por lo tanto, devolverá la longitud del texto que el usuario puso en elEditViewEditView.getText().length(): aquí, en esta declaración, la funciónlength()no pertenece a la claseEditView. En real, la funciónlength()pertenece a la clasegetText()porquegetText()devuelve un objetoCharSequence. Entonces, nuevamente esta funciónlength()devolverá el número de caracteres en esta secuencia.-
.getText().toString().length(): - aquí métodotoString()Convierta el objetoCharSequenceen un objetoStringsimple e inmutable. Por lo tanto, aquí la funciónlength()pertenece aStringclaseStringque también devuelve la longitud del objetoString
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.