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); 
  • Cómo obtener el nombre de la imagen de ImageView en Android?
  • Poner cualquier vista sobre un VideoView en Android
  • ANR en SurfaceView en dispositivos específicos solamente - La única solución es un tiempo de sueño corto
  • Superponer una capa Transparente de pantalla completa en Android 4.4 (KitKat)
  • Cómo mostrar la imagenVer pantalla completa en la imagen¿Haga clic?
  • A veces listView.getChildAt (int index) devuelve NULL (Android)
  • Cómo agregar vistas dentro de una vista personalizada?
  • Mostrar enormes imágenes en Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.