2012-07-23 22 views
28

पर क्लिक नहीं कर रहा है मैंने ListActivity के साथ एंड्रॉइड listview लागू किया। यहां मुझे समस्या है कि जब मैं सूची आइटम पर क्लिक करता हूं तो कोई क्रिया तब नहीं की जाती जब फ्लैश रंग भी नारंगी रंग नहीं आ रहा हो। तो क्या आपको इस सवाल का जवाब देने के बारे में कोई जानकारी है।लिस्टिटम लिस्टव्यू एंड्रॉइड

@Override 
protected void onListItemClick(ListView l, View v, int position, long id) 
{ 
    super.onListItemClick(l, v, position, id); 
    Toast.makeText(getApplicationContext(), "msg msg", Toast.LENGTH_SHORT) 
      .show(); 

} 

मैंने इस कोड को मुख्य सूची सक्रियता में भी रखा है।

+2

आप अपने कोड पोस्ट कर सकते हैं में काम नहीं कर, plz – Nermeen

+0

और अपनी सूची एडाप्टर कोड – rajpara

+1

आप अपनी सूची में किसी भी बटन या ImageButton है? –

उत्तर

107

पहली बात यह है कि तुम क्या है यहाँ ध्यान देने योग्य है, जब भी बटन की तरह क्लिक करने योग्य तत्व या अपने ListView तत्व में ImageButtons मौजूद हैं, वे क्लिक का नियंत्रण लेने आयोजन। और इसलिए आपके ListView को क्लिक ईवेंट स्वीकार करने का मौका नहीं मिलेगा।

आपको बस इतना करना है कि focusableButton या ImageButton के लिए आपके लिस्ट व्यू में झूठी विशेषता है। लेकिन फिर भी वे बिना किसी समस्या के काम करेंगे और आपकी लिस्ट व्यू का onListItemClick भी काम करेगा।

इस प्रयास करें,

 <Button android:id="@+id/textsize_increaser" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_toRightOf="@+id/back_button" 
     android:focusable="false" 
     android:text=" A + "/> 

यहाँ मैं इस android:focusable="false" को शामिल किया है और यह ठीक काम करता है। कोशिश करो।

+2

यदि आप आइटम सुनते हैं तो आपको 'क्लिक करने योग्य = झूठा' भी जोड़ना चाहिए केवल – mente

+0

कृपया मेरी सहायता करें। मैं पिछले 7 घंटों से इस पर अटक गया हूं, और यह इतना आसान सवाल है। http://stackoverflow.com/questions/35108940/why-cant-i-remove-an-item/35109304#35109304 –

+1

मेरे लिए, 'imageButton.setFocusable (false)' और 'imageButton.setFocusableInTouchMode (false)' ** एडाप्टर में ** मदद की। एक्सएमएल में कोई प्रभाव नहीं पड़ा! – user2878850

9

आप एकल के लिए ListView के चुनाव मोड सेट है:

 listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE); 

और अगर आप सूची आइटम में किसी भी क्लिक करने योग्य imageView या TextView या बटन है, तो उन्हें फ़ोकस करने योग्य नहीं (अपने एडाप्टर कक्षा में) बनाने:

 yourButton.setFocusable(false); 
     yourButton.setFocusableInTouchMode(false); 
+0

कृपया मेरी मदद करें। मैं पिछले 7 घंटों से इस पर अटक गया हूं, और यह इतना आसान सवाल है। http://stackoverflow.com/questions/35108940/why-cant-i-remove-an-item/35109304#35109304 –

4

क्या आप कस्टम एडाप्टर का उपयोग कर रहे हैं? और बटन के साथ लेआउट को बढ़ाकर या किसी भी दृश्य जो सूची सूची को दूर करता है, बच्चे के रूप में ध्यान केंद्रित करता है, तो यह स्पष्ट रूप से काम नहीं करेगा।

android:focusable="false" 

xml फ़ाइल में इस तरह के दृश्य को सेट करना सुनिश्चित करें। उम्मीद है इससे आपका काम बनेगा।

+0

कृपया मेरी मदद करें। मैं पिछले 7 घंटों से इस पर अटक गया हूं, और यह इतना आसान सवाल है। http://stackoverflow.com/questions/35108940/why-cant-i-remove-an-item/35109304#35109304 –

4

सेट यह आपके listactivity जावा फ़ाइल में

listview1.setFocusable(false); 
1

ग्रहण ने मुझे लेआउट एक्सएमएल में अपने टेक्स्ट व्यू में textIsSelectable="true" जोड़ने का सुझाव दिया जो सूची दृश्य के लिए उपयोग किया गया था।

अच्छा, अगर आप सूची में आइटम पर क्लिक करना चाहते हैं तो आपको उन टैग को नहीं जोड़ना चाहिए।

0

एक समाधान के लिए इस पोस्ट का संदर्भ लें:

Click is not working on the Listitem Listview android

View v = parent.getChildAt(position); 
parent.requestChildFocus(v,view); 
v.setBackground(res.getDrawable(R.drawable."Some drawable for clicked row")); 

int count = parent.getChildCount(); 
for(int i=0; i<count; i++) 
{ 
    if(i!=position) 
    { 
    v = parent.getChildAt(i); 
    v.setBackground(res.getDrawable(R.drawable."some drawable for not clicked row)); 
    } 
} 
0
listview.setOnItemClickListener(new OnItemClickListener() { 
      @Override 
      public void onItemClick(AdapterView<?> parent, View v, int pos, 
        long id) { 
       Toast.makeText(v.getContext(), exm.get(pos).getDefinition(), 
         Toast.LENGTH_SHORT).show(); 


      } 
     }); 
0

असल में वहाँ एक पैरामीटर है कि फोकस हो रहा से बच्चों विचारों को रोकने के लिए के लिए है, बस माता-पिता में निम्नलिखित जोड़ें लेआउट:

android:descendantFocusability="blocksDescendants" 

जैसा कि प्रलेखन बताता है:

व्यू ग्रुप अपने वंशजों को फोकस प्राप्त करने से रोक देगा।

0

सुनिश्चित करें कि आप

  1. सूची दृश्य के साथ स्क्रॉल दृश्य का उपयोग नहीं कर रहे हैं
  2. सूची दृश्य के लिए अपने पंक्ति आइटम लेआउट में स्क्रॉल दृश्य का उपयोग नहीं

स्क्रॉल देखें मौजूद न हो उपरोक्त किसी भी स्थान पर इसे

0

सूची हटाएं ItemButton.setFocusable (false); सूची ItemButton.setFocusableInTouchMode (झूठा);

उपरोक्त को अपने एडाप्टर में सेट करें। इसके एक्सएमएल