Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Android toggleButton.setOnText y .invalidate no actualiza el texto

Tengo un método como este:

ToggleButton toggle = ((ToggleButton)findViewById(R.id.toggle)); toggle.setTextOn("blah"); toggle.setTextOff("blahblah"); toggle.invalidate(); // doesn't work? 

Este método se llama desde onOptionsItemSelected . El botón de alternancia está dentro de un LinearLayout que está dentro de otro LinearLayout .

Espero que el texto se actualice tan pronto como se llama al método. Por el contrario, el texto del conmutador sólo se actualiza después de presionarlo manualmente para cambiar de estado. ¿Qué estoy perdiendo aquí, estoy usando el método equivocado? ¿Por qué no .invalidate trabajo?

One Solution collect form web for “Android toggleButton.setOnText y .invalidate no actualiza el texto”

En lugar de invalidar, puede actualizar el botón de esta manera:

 toggle.setChecked(toggle.isChecked()); 

Actualizar:

Es extraño que setTextOff y setTextOn no actualicen el botón. Sin embargo setText hace eso. Así que simplemente establezca el texto para cada botón estados y setText para actualizar el valor actual:

 // Text based on state ToggleButton toggle = ((ToggleButton)findViewById(R.id.toggle)); toggle.setTextOn("blah"); toggle.setTextOff("blahblah"); CharSequence text = toggle.isChecked() ? toggle.getTextOn() : toggle.getTextOff(); toggle.setText(text); 
FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.