Изменить текст включения / выключения кнопки Android - PullRequest
74 голосов
/ 30 декабря 2011

Я просто изменил фон ToggleButton, и теперь я ищу, чтобы изменить текст ВКЛ / ВЫКЛ, который появляется с ним.Какой самый простой способ сделать это?

Ответы [ 7 ]

186 голосов
/ 30 декабря 2011

Вы можете использовать следующее для установки текста из кода:

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.

Чтобы задать текст с помощью xml, используйте следующее:

android:textOff="The text for the button when it is not checked."
android:textOn="The text for the button when it is checked." 

Эта информация от здесь

16 голосов
/ 30 декабря 2011

В примере, на который вы ссылаетесь, они меняют его на День / Ночь, используя android:textOn и android:textOff

9 голосов
/ 20 декабря 2014

Установить XML как:

<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" />
2 голосов
/ 11 сентября 2016

Да, вы можете изменить кнопку включения / выключения

    android:textOn="Light ON"
    android:textOff="Light OFF"

См. Больше

http://androidcoding.in/2016/09/11/android-tutorial-toggle-button

2 голосов
/ 09 декабря 2015

Похоже, вам больше не нужно toggleButton.setTextOff (textOff); и toggleButton.setTextOn (textOn) ;. Текст для каждого переключенного состояния будет изменяться путем простого включения соответствующих характеристик xml. Это переопределит текст ВКЛ / ВЫКЛ по умолчанию.

<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"/>
1 голос
/ 10 апреля 2019

В некоторых случаях вам нужно принудительно обновить представление, чтобы оно заработало.

toggleButton.setTextOff(textOff);
toggleButton.requestLayout();

toggleButton.setTextOn(textOn);
toggleButton.requestLayout();
1 голос
/ 20 января 2019

Это можно сделать двумя способами:

Опция 1: путем установки его атрибутов xml

 `android:textOff="TEXT OFF"
  android:textOn="TEXT ON"`

Опция 2: программно

Установите атрибут onClick: methodNameHere (у меня есть toggleState). Затем напишите этот код:

public void toggleState(View view) {
   boolean toggle = ((ToogleButton)view).isChecked();
   if (toggle){
       ((ToogleButton)view).setTextOn("TEXT ON");
   } else {
      ((ToogleButton)view).setTextOff("TEXT OFF");
   }
}

PS: он работает для меня, надеюсь, он работает и для вас

...