Acabo de cambiar el fondo de aToggleButton
, y ahora estoy buscando cambiar el texto ON / OFF que aparece. ¿Cuál es la forma más sencilla de hacer esto?
Acabo de cambiar el fondo de aToggleButton
, y ahora estoy buscando cambiar el texto ON / OFF que aparece. ¿Cuál es la forma más sencilla de hacer esto?
Respuestas:
Puede usar lo siguiente para configurar el texto del código:
toggleButton.setText(textOff);
// Sets the text for when the button is first created.
toggleButton.setTextOff(textOff);
// Sets the text for when the button is not in the checked state.
toggleButton.setTextOn(textOn);
// Sets the text for when the button is in the checked state.
Para configurar el texto usando xml, use lo siguiente:
android:textOff="The text for the button when it is not checked."
android:textOn="The text for the button when it is checked."
Esta información es de aquí
android.support.v7.widget.SwitchCompat
algunos OEM. ¡Lo he comprobado!
En el ejemplo al que enlaza, lo están cambiando a Día / Noche usando android:textOn
yandroid:textOff
Establezca el XML como:
<ToggleButton
android:id="@+id/flashlightButton"
style="@style/Button"
android:layout_above="@+id/buttonStrobeLight"
android:layout_marginBottom="20dp"
android:onClick="onToggleClicked"
android:text="ToggleButton"
android:textOn="Light ON"
android:textOff="Light OFF" />
Parece que ya no necesita toggleButton.setTextOff (textOff); y toggleButton.setTextOn (textOn) ;. El texto de cada estado alternado cambiará simplemente incluyendo las características xml relevantes. Esto anulará el texto de ENCENDIDO / APAGADO predeterminado.
<ToggleButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/toggleText"
android:textOff="ADD TEXT"
android:textOn="CLOSE TEXT"
android:layout_centerHorizontal="true"
android:layout_marginTop="10dp"
android:visibility="gone"/>
Sí, puede cambiar el botón de encendido / apagado
android:textOn="Light ON"
android:textOff="Light OFF"
Consulte para más
http://androidcoding.in/2016/09/11/android-tutorial-toggle-button
Puede hacer esto con 2 opciones:
Opción 1: configurando sus atributos xml
`android:textOff="TEXT OFF"
android:textOn="TEXT ON"`
Opción 2: programáticamente
Establezca el atributo onClick: methodNameHere (el mío es toggleState) Luego escriba este código:
public void toggleState(View view) {
boolean toggle = ((ToogleButton)view).isChecked();
if (toggle){
((ToogleButton)view).setTextOn("TEXT ON");
} else {
((ToogleButton)view).setTextOff("TEXT OFF");
}
}
PD: funciona para mí, espero que también funcione para ti
En algunos casos, debe forzar la actualización de la vista para que funcione.
toggleButton.setTextOff(textOff);
toggleButton.requestLayout();
toggleButton.setTextOn(textOn);
toggleButton.requestLayout();
requestLayout()
no funciona pero lo setChecked()
hace.