Je viens de a changé le fond d’une ToggleButton
, et maintenant je cherche à changer le texte ON/OFF qui l’affiche. Quelle est la manière la plus simple de faire ça?
Vous pouvez utiliser ce qui suit pour définir le texte à partir du code:
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.
Pour définir le texte à l'aide de xml, utilisez ce qui suit:
Android:textOff="The text for the button when it is not checked."
Android:textOn="The text for the button when it is checked."
Cette information est de ici
Dans l'exemple auquel vous vous connectez, ils le changent en Day/Night en utilisant Android:textOn
et Android:textOff
Définissez le code XML comme suit:
<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" />
Il semble que vous n’ayez plus besoin de toggleButton.setTextOff (textOff); et toggleButton.setTextOn (textOn) ;. Le texte de chaque état basculé changera en incluant simplement les caractéristiques XML pertinentes. Ceci remplacera le texte ON/OFF par défaut.
<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"/>
Oui, vous pouvez changer le bouton marche/arrêt
Android:textOn="Light ON"
Android:textOff="Light OFF"
Reportez-vous pour plus
http://androidcoding.in/2016/09/11/Android-tutorial-toggle-button
Vous pouvez le faire par 2 options:
Option 1: en définissant ses attributs XML
`Android:textOff="TEXT OFF"
Android:textOn="TEXT ON"`
Option 2: par programme
Définissez l’attribut onClick: methodNameHere (le mien est toggleState) Puis écris ce code:
public void toggleState(View view) {
boolean toggle = ((ToogleButton)view).isChecked();
if (toggle){
((ToogleButton)view).setTextOn("TEXT ON");
} else {
((ToogleButton)view).setTextOff("TEXT OFF");
}
}
PS: ça marche pour moi, j'espère que ça marche aussi pour vous
Dans certains cas, vous devez forcer l'actualisation de la vue pour la faire fonctionner.
toggleButton.setTextOff(textOff);
toggleButton.requestLayout();
toggleButton.setTextOn(textOn);
toggleButton.requestLayout();