फिर उजागर नहीं करता मैं ListView
सेट के रूप में एक:performItemClick आइटम
navMenu = (ListView) findViewById(R.id.list_menu_nav);
navMenu.setAdapter(new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1,
menuList));
जब मैं एक आइटम में स्पर्श करते हैं, यह एक सफेद हो जाता है:
<ListView
android:id="@+id/list_menu_nav"
android:layout_width="250dp"
android:layout_height="wrap_content"
android:choiceMode="singleChoice"
android:listSelector="#fff">
</ListView>
एडाप्टर के रूप में सेट किया गया है पृष्ठभूमि (जैसा कि मैंने सेट किया है)। लेकिन, जब मैं निष्पादित करता हूं तो नीचे दिए गए आइटम पर क्लिक करें, यह चुना जाता है लेकिन सफेद पृष्ठभूमि नहीं मिलता है।
navMenu.performItemClick(navMenu.getChildAt(1), 1, navMenu.getAdapter().getItemId(1));
मुझे पता है क्योंकि सब कुछ काम करता है की उम्मीद (श्रोता कहा जाता है, getCheckedItemPosition
रिटर्न सही मान) के रूप में यह चयन किया जाता है।
इस मामले में सही दृष्टिकोण क्या है? एक कस्टम के लिए लेआउट का चयन करें और खुद को हाइलाइटिंग करें या एक ही डिफ़ॉल्ट लेआउट का उपयोग कर एक तरीका है?
शायद तुम क्लिक करने से पहले करने के लिए 'invalidate' आइटम की जरूरत है:
केवल वैकल्पिक हल आप कर सकते हैं एक स्पर्श घटना के लिए मजबूर है। – Naddy
मैंने इसका परीक्षण किया। यह भी काम नहीं करता है, 'navMenu.invalidate() 'और' navMenu.requestLayout() 'प्रदर्शन के बाद क्लिक करें। : \ –
@EugenMartynov माना जाता है कि 'सूची चयनकर्ता' सूची में क्या चुना जाता है। आप जो कह रहे हैं उसके बाद, शायद एंड्रॉइड टीम को नाम बदलना चाहिए जैसे 'listSelectorForUserClicks'। –