मेरे पास ListView
सूची में प्रत्येक तत्व में एक TextView और दो अलग-अलग बटन हैं। कुछ इस तरह:
ListView
--------------------
[Text]
[Button 1][Button 2]
--------------------
[Text]
[Button 1][Button 2]
--------------------
... (and so on) ...
इस कोड के साथ मैं OnItemClickListener
पूरे आइटम के लिए बना सकता हूं :
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> list, View view, int position, long id) {
Log.i(TAG, "onListItemClick: " + position);
}
}
});
हालाँकि, मैं संपूर्ण आइटम को क्लिक करने योग्य नहीं चाहता, लेकिन प्रत्येक सूची तत्व के केवल दो बटन।
तो मेरा सवाल यह है कि, मैं निम्नलिखित मानकों के साथ इन दो बटन के लिए एक onClickListener कैसे लागू कर सकता हूं:
int button
(तत्व का कौन सा बटन क्लिक किया गया है)int position
(सूची में वह तत्व है जिस पर बटन क्लिक हुआ)
अद्यतन: मुझे नीचे दिए गए मेरे उत्तर में वर्णित एक समाधान मिला। अब मैं टच स्क्रीन के माध्यम से बटन पर क्लिक / टैप कर सकता हूं। हालाँकि, मैं इसे मैन्युअल रूप से ट्रैकबॉल के साथ नहीं चुन सकता। यह हमेशा पूरी सूची आइटम का चयन करता है और वहां से बटन को अनदेखा करते हुए सीधे अगली सूची आइटम पर जाता है, भले ही मैं सेट करता हूं .setFocusable(true)
और अंदर setClickable(true)
बटन के लिए getView()
।
मैंने इस कोड को अपने कस्टम सूची एडाप्टर में भी जोड़ा है:
@Override
public boolean areAllItemsEnabled() {
return false;
}
@Override
public boolean isEnabled(int position) {
return false;
}
इसका कारण यह है कि कोई भी सूची आइटम किसी भी अधिक चयन करने योग्य नहीं है। लेकिन यह नेस्टेड बटन को चयन करने में मदद नहीं करता था।
किसी को एक विचार?