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); 
  • Actualizar la posición de la vista debajo de otra vista en Android
  • Cómo configurar la sombra de una vista en Android?
  • Cómo traer una vista al frente sin llamar bringToFront ()?
  • Android ExpandableListView - Buscando un tutorial
  • Cómo obtener el nombre de la imagen de ImageView en Android?
  • Textview dentro de RelativeLayout en la vista personalizada ¿No se aplica la gravedad correctamente?
  • El teclado de software redimensiona la imagen de fondo en Android
  • Cómo obtener la posición de View en onCreateViewHolder
  • Diseño de vistas personalizadas
  • Cómo identificar una vista en el diseño?
  • SendUserActionEvent () es null
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.