web-dev-qa-db-fra.com

Changer le texte On/Off d'un bouton à bascule Android

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?

71
styler1972

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

181
rfsk2010

Dans l'exemple auquel vous vous connectez, ils le changent en Day/Night en utilisant Android:textOn et Android:textOff

15
Mark B

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" />
8
Joolah

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"/>
2
Martin Erlic

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

2
abhi

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

1
Feps

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();
0
Saurabh Padwekar