Ich habe gerade den Hintergrund von a geändertToggleButton
, und jetzt möchte ich den EIN / AUS-Text ändern, der damit erstellt wird. Was ist der einfachste Weg, dies zu tun?
Ich habe gerade den Hintergrund von a geändertToggleButton
, und jetzt möchte ich den EIN / AUS-Text ändern, der damit erstellt wird. Was ist der einfachste Weg, dies zu tun?
Antworten:
Sie können Folgendes verwenden, um den Text aus dem Code festzulegen:
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.
Verwenden Sie Folgendes, um den Text mithilfe von XML festzulegen:
android:textOff="The text for the button when it is not checked."
android:textOn="The text for the button when it is checked."
Diese Informationen stammen von hier
android.support.v7.widget.SwitchCompat
einigen OEMs funktioniert das nicht. Ich habe das überprüft!
In dem Beispiel, auf das Sie verlinken, ändern sie es mit android:textOn
und in Tag / Nachtandroid:textOff
Stellen Sie das XML wie folgt ein:
<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" />
Es scheint, dass Sie toggleButton.setTextOff (textOff) nicht mehr benötigen. und toggleButton.setTextOn (textOn);. Der Text für jeden umgeschalteten Status ändert sich, indem lediglich die relevanten XML-Merkmale einbezogen werden. Dadurch wird der Standard-EIN / AUS-Text überschrieben.
<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"/>
Ja, Sie können die Ein- / Aus-Taste ändern
android:textOn="Light ON"
android:textOff="Light OFF"
Weitere Informationen finden Sie hier
http://androidcoding.in/2016/09/11/android-tutorial-toggle-button
Sie können dies mit 2 Optionen tun:
Option 1: Durch Festlegen der XML-Attribute
`android:textOff="TEXT OFF"
android:textOn="TEXT ON"`
Option 2: Programmatisch
Setzen Sie das Attribut onClick: methodNameHere (meins ist toggleState) Dann schreiben Sie diesen 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: Es funktioniert bei mir, hoffe es funktioniert auch bei Ihnen
In einigen Fällen müssen Sie die Aktualisierung der Ansicht erzwingen, damit sie funktioniert.
toggleButton.setTextOff(textOff);
toggleButton.requestLayout();
toggleButton.setTextOn(textOn);
toggleButton.requestLayout();
requestLayout()
funktioniert nicht aber setChecked()
tut.