Я только что изменил фон aToggleButton
, и теперь я хочу изменить текст ON / OFF, который появляется вместе с ним. Как это сделать проще всего?
Я только что изменил фон aToggleButton
, и теперь я хочу изменить текст ON / OFF, который появляется вместе с ним. Как это сделать проще всего?
Ответы:
Вы можете использовать следующее, чтобы установить текст из кода:
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."
Эта информация отсюда
android.support.v7.widget.SwitchCompat
некоторыми OEM-производителями, которые я проверял!
В примере, на который вы ссылаетесь, они меняют его на День / Ночь, используя android:textOn
иandroid:textOff
Установите 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" />
В некоторых случаях вам нужно принудительно обновить представление, чтобы оно работало.
toggleButton.setTextOff(textOff);
toggleButton.requestLayout();
toggleButton.setTextOn(textOn);
toggleButton.requestLayout();
requestLayout()
не работает, но setChecked()
работает.
Похоже, вам больше не нужен 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"/>
Да, вы можете изменить кнопку включения / выключения
android:textOn="Light ON"
android:textOff="Light OFF"
Обратитесь за дополнительной информацией
http://androidcoding.in/2016/09/11/android-tutorial-toggle-button
Сделать это можно двумя способами:
Вариант 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: это работает для меня, надеюсь, это сработает и для вас