2009-10-17 12 views
6

मेरे पास LinearLayout के अंदर है। LinearLayout फोकस प्राप्त करने में सक्षम है, और मुझे TextView में यह बदलने के लिए बदलना है। मैंने सोचा कि ColorStateList का उपयोग करना काम करेगा, लेकिन ऐसा लगता है कि TextViewLinearLayout करता है जब फोकस प्राप्त नहीं होता है। मुझे लगता है कि पता है, क्योंकि मैं इस कोड की कोशिश की है:एंड्रॉइड: टेक्स्टव्यू टेक्स्ट बदलें रंग जब माता-पिता केंद्रित है

mTextView.setOnFocusChangeListener(new OnFocusChangeListener() { 

    @Override 
    public void onFocusChange(View v, boolean hasFocus) { 
     Log.d(TAG, "Changed TextView focus to: " + hasFocus); 
    } 
}); 

और कुछ भी नहीं है लॉग होता है। मैं TextView के textColor को बदलने के लिए LinearLayout पर OnFocusChangeListener का उपयोग नहीं करना चाहता, मुझे लगता है कि यह एक्सएमएल से किया जाना है। इसका कारण यह है कि एक और गतिविधि में मेरे पास एक कस्टम एडाप्टर और कस्टम दृश्यों के साथ ExpandableListView है और एंड्रॉइड एस TextView एस (प्रकाश से अंधेरे तक) को मेरे कस्टम दृश्यों के अंदर बदलते हैं जब आइटम केंद्रित होते हैं।

उत्तर

10

यह एक पुरानी पोस्ट है, लेकिन बाद से मैं था एक ही समस्या है, यहाँ XML विशेषता मैं यह करने के लिए मिला है:

android:duplicateParentState="true" 

(TextView में जोड़े जाने की लेआउट की राज्य में परिवर्तन जब अपने 'ध्यान केंद्रित "राज्य को बदलने के लिए)

+0

काम कर रहे ठीक भाई :: :) –

4

आप LinearLayout के श्रोता के ऑनफोकस चेंज विधि में टेक्स्ट व्यू ला सकते हैं। जैसे

public void onFocusChange(View v, boolean hasFocus) { 
    TextView tv = (TextView)v.findViewById(R.id.myTextView); 
    tv.setTextColor(R.color.foo); 
} 

कुछ के बाद से अपने डालूँगा कई विजेट्स होस्ट कर सकते हैं मुझे लगता है कि यह उम्मीद की जाती है कि डालूँगा की onFocus प्रचार नहीं करेंगे, भले ही आप एक ही नियंत्रण

+0

मैं जानता हूँ कि मैं यह कर सकते हैं ऐसा करने के लिए, लेकिन जैसा कि मैंने मूल पोस्ट में कहा था, मैं इसे टालना चाहूंगा। साथ ही, यदि आपने किसी सूची दृश्य के लिए कभी भी कस्टम एडाप्टर का उपयोग किया है, तो आप देखेंगे कि सूची आइटम पर ध्यान केंद्रित करते समय भी यह टेक्स्ट रंग बदलता है, इससे कोई फर्क नहीं पड़ता कि आपके पास आइटम व्यू के अंदर कितने तत्व हैं। मैं उत्सुक हूं कि उन्होंने ऐसा कैसे किया, और मैं शर्त लगाऊंगा कि यह केवल एक्सएमएल से किया गया है। – Felix

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