토글 버튼 Android의 켜기 / 끄기 텍스트 변경


답변:


202

다음을 사용하여 코드에서 텍스트를 설정할 수 있습니다.

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." 

이 정보는 여기에서


4
그러나 그것은 EI 삼성과 HTC 휴대폰에서 작동하지 않습니다
Serafins

2
세라 핀스, 맞지 않습니다. 삼성 및 HTC 전화에서 작동합니다.
중단

4
프로그래밍 방식으로 켜기 및 끄기 텍스트를 업데이트 할 때 버튼이 새 텍스트로 다시 그려지지 않습니다. setChecked (toggleButton.isChecked)를 호출하여 강제로 다시 그릴 수 있습니다. 우스꽝스럽게 들리지만 강제로 다시 그리는 방법입니다. 이 stackoverflow 답변을 참조하십시오 .
MidasLefko 2015

더 이상 toggleButton.setTextOff (textOff); 및 toggleButton.setTextOn (textOn) ;. 토글 된 각 상태의 텍스트는 관련 xml 특성을 포함하기 만하면 변경됩니다.
Martin Erlic 2015

1
예, android.support.v7.widget.SwitchCompat일부 OEM 에서는 작동하지 않습니다 .
sud007

16

링크 한 예에서, 그들은 android:textOnand 를 사용하여 Day / Night로 변경 하고 있습니다.android:textOff


나는 실제로 전에 본 적이없는 다른 질문에 연결되었습니다. 내 질문에 답을 알려 주셔서 감사합니다.
styler1972 2011

11

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

더 이상 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"/>


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");
   }
}

추신 : 그것은 나를 위해 작동합니다, 그것이 당신에게도 작동하기를 바랍니다


2

어떤 경우에는보기를 강제로 새로 고쳐야 작동합니다.

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

toggleButton.setTextOn(textOn);
toggleButton.requestLayout();

requestLayout()작동하지 않지만 작동 setChecked()합니다.
Irfan Latif
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.