Poblar EditarTexto texto del widget de otro texto del widget EditarTexto
-
19-09-2019 - |
Pregunta
Estoy tratando de poblar el texto de un segundo widget de EditarTexto con el texto del primer widget EditarTexto sólo cuando el segundo widget de EditarTexto recibe el foco, la segunda Reproductor no está vacío, y el primer widget no está vacío.
Tengo el siguiente código de controlador de OnFocusChangeListener.
public void onFocusChange(View v, boolean hasFocus) {
EditText stxt = (EditText) findViewById(R.id.numberone);
EditText etxt = (EditText) findViewById(R.id.numbertwo);
if (hasFocus && stxt.getText().toString().trim() != "" && etxt.getText ().toString().trim() == "")
{
etxt.setText(stxt.getText().toString().trim());
}
}
Cuando corro y haga clic en el segundo widget de que no llena. Cuando quito la tercera restricción ( 'etxt.getText () .toString (). Trim () == ""')) funciona. por lo getText () en el segundo widget de EditarTexto está devolviendo algo a pesar de que el segundo widget tiene ningún valor inicial de otros entonces el texto que se muestra a través del atributo indirecta.
¿Cómo puedo lograr esto.
Gracias
Solución
Se debe hacer una comparación de objetos utilizando String.equals()
, no sólo x == ""
.
Me gustaría volver a escribir esto usando la mano clase TextUtils
:
String one = stxt.getText().toString();
String two = etxt.getText().toString();
if (hasFocus && TextUtils.getTrimmedLength(one) != 0
&& TextUtils.getTrimmedLength(two) == 0) {
etxt.setText(one);
}
Otros consejos
Nunca comparar cadenas en Java con ==
o !=
. Utilice equals()
. Trate de eso y ver si le da mejores resultados.