में काम नहीं कर रहे परिवर्तनीय चयनकर्ता चयनित पंक्ति को हाइलाइट करने के लिए ListView
में प्रत्येक आइटम के लिए पृष्ठभूमि के रूप में एक खींचने योग्य चयनकर्ता है। आइस क्रीम सैंडविच में Eveything ठीक काम करता है, लेकिन जेली बीन में काम नहीं कर रहा है। कोई दस्तावेज नहीं मिल रहा है कि यह कहने से कि क्या बदलाव हो सकता है जिससे काम करना बंद कर दिया जा सकता है और इसे ठीक करने के लिए मुझे क्या करना है।जेली बीन
काम नहीं करके, मेरा मतलब है कि जब मैं ListView
में एक पंक्ति पर क्लिक करता हूं तो आइटम का पृष्ठभूमि रंग @color/blue
रंग नहीं बदल रहा है, लेकिन यह आईसीएस में करता है।
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:orientation="horizontal"
android:background="@color/listing_selector"
>
<TextView
android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
/>
</RelativeLayout>
यह नीले रंग संसाधन:
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:state_focused="true" android:drawable="@color/blue" />
<item android:state_pressed="true" android:drawable="@color/blue" />
<item android:state_activated="true" android:drawable="@color/blue_selected" />
<item android:state_selected="true" android:drawable="@color/blue_selected" />
<item android:drawable="@android:color/transparent" />
</selector>
यह ListView
आइटम के लेआउट है:
इस चयनकर्ता कोड मैं उपयोग कर रहा हूँ (listing_selector.xml) है
<resources>
<color name="blue">#ff33b5e5</color>
</resources>
अद्यतन 1:
की कोशिश की drawable
फ़ोल्डर में color
फ़ोल्डर से चयनकर्ता चलती है और इस के लिए कोड अपडेट:
android:background="@drawable/listing_selector"
अद्यतन 2:
इसके अलावा, ListView
पर, इस जोड़ने की कोशिश की:
<ListView android:id="@android:id/list"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:listSelector="@drawable/listing_selector"
/>
अद्यतन 3:
मैंने सोचा कि यह मेरे कोड में कुछ हो सकता है, लेकिन मैंने के onListItemClick
से सभी कोड हटा दिए और अभी भी selector
काम नहीं कर रहा है।
अद्यतन 4:
मैं करने के लिए state_selected
या state_activated
काम नहीं कर रहा है कि यह संकुचित करेंगे, तब तक state_pressed
काम करने
अद्यतन 5 लगता है:
मुझे लगता है कि मैं गलत था । मुझे नहीं लगता कि चयनकर्ता को पहचाना जा रहा है। मैं अपने चयनकर्ता के रूप में हाइलाइट किए गए अंतर्निहित ListView
को भ्रमित कर रहा था। अब मैं सोच रहा हूं कि मेरे प्रोजेक्ट की स्थापना के तरीके के साथ कुछ करना है या नहीं। मेरे पास लाइब्रेरी क्लास में चयनकर्ता है। शायद आईसीएस से जेबी तक कुछ बदल गया, हालांकि चयनकर्ता को मेरे ऐप के प्रोजेक्ट में ले जाने से यह ठीक नहीं लग रहा था।
अद्यतन 6:
ठीक है, कुछ और बाल खींचने के बाद, मैं इसे नीचे संकुचित कर दिया है, फिर से, या तो state_selected
या state_activated
नहीं करने के लिए पहचाना जा रहा है, के रूप state_pressed
के लिए रंग बदलने काम करता है जिसका अर्थ है मेरे चयनकर्ता को पहचाना जा रहा है। टिप्पणियों में से मेरे ऐप के साथ कुछ ऐसा लगता है क्योंकि अन्य लोग जेली बीन के साथ काम करने वाले चयनकर्ताओं को प्राप्त करने में सक्षम हैं।
हालांकि दिलचस्प कुछ और बात यह है कि drawable
डिफ़ॉल्ट स्थिति के लिए मान को पहचानना नहीं है। जहां मेरे पास color/transparent
है, मुझे लगता है कि एक रंग में बदलने से सूची उस रंग में बदल जाएगी, लेकिन ऐसा नहीं होता है।
इसके अलावा, यह आईसीएस में भी काम नहीं कर रहा है।
अद्यतन 7:
और भी अधिक बाल खींच के बाद, मुझे पता चला है कि देर तक दबाए है कि आइटम के रंग में एक मेनू आइटम परिणामों पर बदला जा रहा। बस एक आइटम पर क्लिक करना अभी भी काम नहीं करता है। यह भी सुनिश्चित नहीं है कि साधन क्या हैं।
** अंतिम अद्यतन: **
मैं छोड़ देना, मैं चयनकर्ता हटा दिया और बस क्लिक पर ListView
ताज़ा और याद स्थिति क्लिक किया और कोड से यह प्रकाश डाला कर रहा हूँ। आदर्श नहीं है, लेकिन ठीक करने का प्रयास करने के प्रयास के लायक नहीं है।
जब आपने अपना अद्यतन 2 आजमाया, तो क्या आपने एंड्रॉइड को हटा दिया: आपकी सूची आइटम से पृष्ठभूमि। मैं एंड्रॉइड का उपयोग करता हूं: सूची के लिए सूची चयनकर्ता, और फिर कोई एंड्रॉइड नहीं: सूची आइटम सूची के लिए पृष्ठभूमि परिभाषित किया गया है; और सब कुछ मेरे लिए काम करता है। इसके अलावा, मुझे यकीन नहीं है कि यह संबंधित है लेकिन मेरे पास एंड्रॉइड भी है: cacheColorHint = "@ null"। – Chris
@ क्रिस हाँ, कोशिश की कि या तो काम नहीं किया। मैंने एक नया अपडेट जोड़ा (# 5)। मैं सोच रहा हूं कि क्या समस्या मेरे पास है जिस तरह से मेरा प्रोजेक्ट सेटअप है? –
प्रोजेक्ट सेटअप इस मुद्दे से असंबंधित होना चाहिए कि आपको लगता है कि आपके एंड्रॉइड निर्भरताएं दिख रही हैं .... जो ग्रहण मूल रूप से आपको करने के लिए मजबूर करता है। ड्रॉबल बनाम रंगीन चीज़ पर युक्ति, एंड्रॉइड का उपयोग करें: res/color में xml चयनकर्ताओं के लिए रंग, और एंड्रॉइड: res/drawable में xml चयनकर्ताओं के लिए drawable। आपके पास जो कुछ है उसके लिए शायद रंग के बजाए इसे आकर्षित करने के लिए उपयोग करने का कोई कारण नहीं है। और रंगों में पूर्ण अस्पष्टता है, इसलिए # ff33b5e5 # 33b5e5 – syklon