Я щойно змінив фон аToggleButton
, а тепер я хочу змінити текст УВІМК. Який найпростіший спосіб це зробити?
Я щойно змінив фон аToggleButton
, а тепер я хочу змінити текст УВІМК. Який найпростіший спосіб це зробити?
Відповіді:
Для встановлення тексту з коду можна використовувати наступне:
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
деякими виробниками, я перевірив це!
У прикладі, на який ви посилаєтесь, вони змінюють його на День / Ніч, використовуючи 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: це працює для мене, сподіваюся, це працює і для вас