私はただ ToggleButton
の背景を変更した であり、今度はそれに付随する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."
この情報は here からのものです
リンク先の例では、Android:textOn
およびAndroid:textOff
を使用してDay/Nightに変更しています
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つのオプションで実行できます。
オプション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:それは私のために働く、それもあなたのために働くことを願って
もうtoggleButton.setTextOff(textOff);は必要ないようです。およびtoggleButton.setTextOn(textOn);。各トグル状態のテキストは、関連するxml特性を含めるだけで変更されます。これにより、デフォルトのON/OFFテキストが上書きされます。
<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
場合によっては、ビューを機能させるためにビューを強制的に更新する必要があります。
toggleButton.setTextOff(textOff);
toggleButton.requestLayout();
toggleButton.setTextOn(textOn);
toggleButton.requestLayout();