टॉगल बटन एंड्रॉइड के ऑन / ऑफ टेक्स्ट को बदलें


जवाबों:


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 samsung और htc फोन पर काम नहीं करता है
Serafins

2
सेराफिन्स, यह सही नहीं है। यह सैमसंग और एचटीसी फोन पर काम करता है।
बाधित

4
प्रोग्राम को ऑन और ऑफ करते समय अपडेट करने पर बटन नए टेक्स्ट के साथ खुद को दोबारा नहीं बनाता है। आप setChecked (toggleButton.isChecked) पर कॉल करके एक redraw को बाध्य कर सकते हैं। हास्यास्पद लगता है, लेकिन इसकी एक हैकिंग के लिए मजबूर करने के लिए हैक। इस स्टैकओवरफ़्लो उत्तर को देखें ।
मिडस्लेफ्को

ऐसा प्रतीत होता है कि अब आपको टॉगलबटन की जरूरत नहीं है। सेटटेक्स्टऑफ (टेक्स्टऑफ); और toggleButton.setTextOn (textOn) ;; प्रत्येक toggled राज्य के लिए पाठ केवल प्रासंगिक xml विशेषताओं सहित बदल जाएगा।
मार्टिन एरिक

1
हाँ, यह android.support.v7.widget.SwitchCompatमेरे द्वारा जाँच की गई कुछ ओईएम पर काम नहीं करता है!
सूद 7००

16

आपके द्वारा लिंक किए गए उदाहरण में, वे इसका उपयोग करके दिन / रात में बदल रहे हैं android:textOnऔरandroid:textOff


मैं वास्तव में एक अलग प्रश्न से जुड़ा था जो मैंने पहले कभी नहीं देखा था। मेरे अपने प्रश्न का उत्तर बताने के लिए धन्यवाद।
स्टाइलर १

12

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

3

कुछ मामलों में, आपको इसे काम करने के लिए दृश्य को ताज़ा करने के लिए मजबूर करने की आवश्यकता है।

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

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

requestLayout()काम नहीं करता है लेकिन setChecked()करता है।
इरफान लतीफ

2

ऐसा प्रतीत होता है कि अब आपको टॉगलबटन की जरूरत नहीं है। सेटटेक्स्टऑफ (टेक्स्टऑफ); और toggleButton.setTextOn (textOn) ;; प्रत्येक toggled राज्य के लिए पाठ केवल प्रासंगिक 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"/>


2

आप इसे 2 विकल्पों द्वारा कर सकते हैं:

विकल्प 1: इसकी xml विशेषताएँ सेट करके

 `android:textOff="TEXT OFF"
  android:textOn="TEXT ON"`

विकल्प 2: प्रोग्रामेटिक रूप से

इस विशेषता को सेट करेंक्लिक करें: methodNameHere (मेरा टॉगलस्टेट है) फिर इस कोड को लिखें:

public void toggleState(View view) {
   boolean toggle = ((ToogleButton)view).isChecked();
   if (toggle){
       ((ToogleButton)view).setTextOn("TEXT ON");
   } else {
      ((ToogleButton)view).setTextOff("TEXT OFF");
   }
}

पुनश्च: यह मेरे लिए काम करता है, आशा है कि यह आपके लिए भी काम करता है

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.