2012-11-07 10 views
23

मैंने इसे अक्षम करने के लिए setEnabled (false) का उपयोग किया है, लेकिन यह काम नहीं करता है। और इस विधि के बाद, RadioGroup.IsEnabled() का मान गलत है। मूल्य बदल दिया गया था।रेडियो ग्रुप, सेटएनेबल (झूठा) काम नहीं कर रहा है!

कोड एंड्रॉइड प्रोग्रामिंग गाइड से है। Ps: स्पिनर घटक setEnabled (false) का उपयोग करता है।

कोड इस प्रकार है:

पैकेज com.example.testviews;

for (int i = 0; i < testRadioGroup.getChildCount(); i++) { 
    testRadioGroup.getChildAt(i).setEnabled(false); 
} 

उत्तर

64

निम्न विधि का उपयोग।

का पता लगाएं और सभी स्पर्श विचारों कि इस दृश्य के वंशज हैं लौटने के लिए, संभवतः जिनमें शामिल हैं: क्योंकि यह भी अपने आप में देता है, तो यह एक साधारण से एक है

for(View lol : your_spinner.getTouchables()) { 
    lol.setEnabled(false); 
} 

: आप उन सब को निष्क्रिय करने के लिए इस तरह की है यह दृश्य अगर यह खुद को स्पर्श करने योग्य है।

View#getTouchables()

+0

, बहुत बहुत धन्यवाद! और, एम, दूसरी विधि वास्तव में अच्छी तरह से काम करती है। यह सभी रेडियो बटन अक्षम कर दिया गया है! लेकिन पहला अभी भी काम नहीं करता है! क्या कोड आपकी मशीन पर अच्छी तरह से काम करता है? – JasonW

+0

बहुत बहुत धन्यवाद! – JasonW

+0

वास्तव में, यह काम कर रहा है – abh22ishek

3

दृश्य एकाधिक स्पर्श तत्वों द्वारा रचना जा सकता है:

import android.app.Activity; 
import android.graphics.Color; 
import android.os.Bundle; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
import android.widget.RadioGroup; 

public class TestRadioGroup extends Activity { 


@Override 
public void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.radiogroup); 

    final RadioGroup testRadioGroup = (RadioGroup) findViewById(R.id.testRadioGroup); 

    final Button changeEnabledButton = (Button) findViewById(R.id.changeEnabledButton); 
    changeEnabledButton.setOnClickListener(new OnClickListener() { 

     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      changeEnabled(testRadioGroup); 
     } 
    }); 

    final Button changeBgColorButton = (Button) findViewById(R.id.changeBackgroundColorButton); 
    changeBgColorButton.setOnClickListener(new OnClickListener() { 

     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      changeBgColor(testRadioGroup); 
     } 
    }); 

} 

protected void changeBgColor(RadioGroup testRadioGroup) { 
    // TODO Auto-generated method stub 
    testRadioGroup.setBackgroundColor(Color.BLUE); 
} 

protected void changeEnabled(RadioGroup testRadioGroup) { 
    // TODO Auto-generated method stub 
    if (testRadioGroup.isEnabled()) { 
     testRadioGroup.setEnabled(false); 
    } else { 
     testRadioGroup.setEnabled(true); 
    } 
} 

}

0

आप नीचे दिए गए कोड का उपयोग नहीं कर सकते हैं;

for(View lol : your_spinner.getTouchables()) { 
    lol.setEnabled(false); 
} 

एक बार विचार अक्षम हो जाने के बाद, अब कोई स्पर्श करने योग्य बच्चा/वंशज नहीं है।

संबंधित मुद्दे