2010-07-08 20 views
6

मेरे पास एक ऐसी गतिविधि है जहां टैबलेट के अंदर बटनों का एक समूह रखा जाता है, डायल पैड के विपरीत नहीं। कुछ परिचालनों के दौरान मुझे अस्थायी रूप से बटन अक्षम करने की आवश्यकता है। TableLayout.setEnabled(false) पर मेरे अप्रिय आश्चर्य के लिए नेस्टेड बटन पर कोई प्रभाव नहीं पड़ता है। क्या मैं प्रत्येक व्यक्तिगत बटन को सेट करने के साथ अटक गया हूं या क्या इसे प्राप्त करने के लिए निफ्टी (बेहतर) तरीका है?एंड्रॉइड: बड़े पैमाने पर सक्षम/अक्षम बटन

उत्तर

9

मैं कुछ इस तरह से करने की कोशिश करेंगे:

TableLayout tableLayoutInstance; // let's suppouse you have already initialized it 
// blablabla 
// example to deactivate all buttons 
ArrayList<View> touchables = tableLayoutInstance.getTouchables(); 
for(View touchable : touchables){ 
    if(touchable instanceof Button) 
     ((Button)touchable).setEnabled(false); 
} 
+0

आदर्श नहीं है लेकिन मेरी परिस्थितियों में स्वीकार्य है (और पर्याप्त छोटा)। धन्यवाद! – Bostone

+0

((बटन) स्पर्श करने योग्य) .setEnabled (झूठा); –

1

मुझे लगता है कि आपको इस बटन के प्रत्येक व्यक्ति को निष्क्रिय करने के लिए सेट करना होगा। इसे थोड़ा सा अच्छा बनाने के लिए आप सभी बटनों को सूची में डाल सकते हैं और सक्रियण और निष्क्रिय करने के दौरान उन पर फिर से चल सकते हैं। लेकिन यह आपको कोड में एक बार उन्हें खोजने से नहीं रोकेगा।

+0

कम से कम मैं एक कस्टम बटन बना सकता हूं जो कुछ घटनाओं को सुनता है और उस पर आधारित सक्षम/अक्षम करता है। मैं बस उस मार्ग पर जाने से पहले आलसी होने की कोशिश कर रहा हूं :) – Bostone

0

के बाद से बटन एक TableLayout अंतर्गत नेस्टेड रहे हैं, यह बच्चों पर पुनरावृति करने के लिए आसान होना चाहिए और हर एक की स्थापना की। मुझे नहीं पता कि कोई आसान तरीका है या नहीं।

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