दिलचस्प पोस्ट
कमांड लाइन अनुप्रयोग में कीबोर्ड से इनपुट वेबसाइट के लिए "मुझे याद रखना" को लागू करने का सबसे अच्छा तरीका क्या है? AngularJS अनुप्रयोग फ़ाइल संरचना इनलाइन तत्वों और रेखा-ऊंचाई सरल इंजेक्टर के साथ IAuthenticationManager पंजीकृत करें मैं आधी रात को एनएसडीटी ऑब्जेक्ट कैसे सेट कर सकता हूं? सीएसएस खाली सेल की सीमा को प्रकट करने के लिए? एंड्रॉइड में एपीआई चैट प्रमुख बनाने के लिए फेसबुक का उपयोग क्या है? पाठ पर आधारित jQuery का चयन करें फ़ायरबग प्रोफाइलर आउटपुट को समझना मेमोरी बाधा जनरेटर AVVideoCompositionCoreAnimationTool का उपयोग करते हुए CALayer में स्थिर छवि वाला वीडियो मिक्स करें क्या संग्रह परिवर्तित होने के बाद एसटीएल इटरेटर वैधता सुनिश्चित करते हैं? जावास्क्रिप्ट के साथ दिनांक समय स्वरूपण क्यों कई मूल्यों के खिलाफ एक चर की गैर-समानता जांच हमेशा सही देता है?

OnItemClickListener और OnClickListener ListView के लिए काम नहीं कर रहा है

मैंने एक कस्टम सूचीदृश्य का उपयोग किया है और मैं उसी सूचीदृश्य का उपयोग करते हुए कुछ डेटा प्रदर्शित कर रहा हूं।

जब मैं सूची दृश्य आइटम पर क्लिक करता हूं, तो onClickListener को कॉल नहीं किया जा रहा है। मैं किसी सूची सूची का चयन करने में सक्षम नहीं हूं।

लेआउट कोड:

<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_alignParentLeft="true" android:layout_marginBottom="16dp" android:background="@drawable/list_selector" android:clickable="true" android:orientation="horizontal" android:padding="5dip" > <LinearLayout android:id="@+id/imgProperty" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_marginRight="5dip" android:padding="3dip" > <ImageView android:id="@+id/list_image" android:layout_width="50dp" android:layout_height="50dp" android:contentDescription="@string/app_name" android:src="@drawable/ic_launcher" android:focusable="false"/> </LinearLayout> <TextView android:id="@+id/tvCity" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:layout_marginLeft="75dip" android:layout_toRightOf="@+id/list_image" android:paddingBottom="10dip" android:text="property" android:textColor="#040404" android:textSize="15sp" android:textStyle="bold" android:typeface="sans" /> <TextView android:id="@+id/tvprice" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBottom="@+id/imgProperty" android:layout_alignLeft="@+id/tvCity" android:text="Price" android:focusable="false"/> </RelativeLayout> 

एडाप्टर कोड:

  public class CustomListAdapter extends BaseAdapter { ArrayList<Propety> PropertiesArray; private LayoutInflater Inflater; public CustomListAdapter(ArrayList<Propety> PropertiesArray) { this.PropertiesArray=PropertiesArray; } @Override public int getCount() { // TODO Auto-generated method stub return PropertiesArray.size(); } @Override public Object getItem(int position) { return PropertiesArray.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, final ViewGroup parent) { if (convertView == null) { LayoutInflater inflater = LayoutInflater.from(parent.getContext()); convertView = inflater.inflate(R.layout.customlistview, parent, false); } final Propety ListArray = PropertiesArray.get(position); TextView tvPropertyName = (TextView) convertView.findViewById(R.id.tvCity); tvPropertyName.setText(ListArray.getName()); TextView tvPrice = (TextView) convertView.findViewById(R.id.tvprice); tvPrice.setText(ListArray.getPrice()); ImageView imgProperty = (ImageView) convertView.findViewById(R.id.list_image); imgProperty.setImageResource(R.drawable.ic_launcher); convertView.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Toast.makeText(parent.getContext(), "view clicked: " + ListArray.getName(), Toast.LENGTH_SHORT).show(); } }); return convertView; } } 

सूची दृश्य कोड:

  ListView propertylistview = (ListView) findViewById(R.id.listview); CustomListAdapter customlistview=new CustomListAdapter(PropertiesArray); propertylistview.setAdapter(customlistview); 

ListView XML:

  <ListView android:id="@+id/listview" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_below="@+id/customview" android:layout_marginBottom="10dp" android:layout_marginLeft="10dp" android:layout_marginRight="10dp" android:layout_marginTop="24dp" android:background="@drawable/list_selector" android:textAlignment="center" > 

custom.xml:

 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" > <SurfaceView android:id="@+id/surface" android:layout_width="fill_parent" android:layout_height="match_parent" /> <TextView android:id="@+id/txtangle" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_alignParentLeft="true" android:layout_marginBottom="115dp" android:layout_marginLeft="95dp" android:text="" /> <ListView android:id="@+id/listview" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_below="@+id/customview" android:layout_marginBottom="10dp" android:layout_marginLeft="10dp" android:layout_marginRight="10dp" android:layout_marginTop="24dp" android:background="@drawable/list_selector" android:textAlignment="center" > </ListView> <view android:id="@+id/customview" android:layout_width="110dp" android:layout_height="110dp" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" class="com.example.samplebuapp.CustomCompass" /> <view android:id="@+id/view1" android:layout_width="110dp" android:layout_height="110dp" android:layout_above="@+id/listview" android:layout_alignParentRight="true" android:layout_marginRight="18dp" class="com.example.samplebuapp.CustomView" /> <LinearLayout android:id="@+id/rl1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_below="@+id/listview" android:orientation="vertical" android:focusable="false"> </LinearLayout> </RelativeLayout> 

यहां तक ​​कि स्क्रॉलिंग काम नहीं कर रहा है

मैं समझ नहीं पा रहा हूं कि ऐसा क्यों हो रहा है? क्या मुझे कुछ याद आ रहा है?

इस को हल करने में कोई भी मदद की सराहना की जाती है

Solutions Collecting From Web of "OnItemClickListener और OnClickListener ListView के लिए काम नहीं कर रहा है"

निम्नलिखित आपके मामले में नौकरी करेंगे।

 ListView propertylistview = (ListView) findViewById(R.id.listview); propertylistview.setOnItemClickListener( myListViewClicked ): OnItemClickListener myListViewClicked = new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { Toast.makeText(YourActivity.this, "Clicked at positon = " + position, Toast.LENGTH_SHORT).show(); } }; 

CustomAdapter से निम्न को हटाने के लिए मत भूलें

  convertView.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Toast.makeText(parent.getContext(), "view clicked: " + ListArray.getName(), Toast.LENGTH_SHORT).show(); } }); 

मैं Ninjia से सहमत हूं, लेकिन आपको एक्सिस कोड को जोड़ना चाहिए: आपको आइटम सूचीदृश्य (टेक्स्टव्यू, इमेजिव्यू आदि) में सभी चीजों की वस्तुओं को परिभाषित करना चाहिए:

 android:clickable="false" android:focusable="false" android:focusableInTouchMode="false" 

और जड़ वस्तु के लिए RelativeLayout / LinearLayout और इसलिए, परिभाषित करें:

 android:clickable="false" android:descendantFocusability="blocksDescendants" android:focusable="false" android:focusableInTouchMode="false" 

यदि आप उन को परिभाषित नहीं करेंगे, तो वे क्लिक ईवेंट को "पकड़" करेंगे। और अगर आपके पास एक कस्टम सूचीदृश्य एडेप्टर है, तो जांच लें कि आप ओवरराइड कर रहे हैं:

 @Override public boolean isEnabled(int position) { return true; } 

सरल कोड जो मेरी समस्या का हल करता है, और विधि view.setOnClickListener मेरे कस्टम एडॉप्टर के भीतर है

  view.setFocusable(false) 

अगर आपके कस्टम सेल के लेआउट में, सेल लेआउट के अंदर टच इवेंट रोका जा रहा हो, तो android:descendantFocusability="blocksDescendants" सेट करें android:descendantFocusability="blocksDescendants" अपने सेल के शीर्ष स्तर के लेआउट पर android:descendantFocusability="blocksDescendants" । मेरे लिए, प्रत्येक व्यक्ति के दृश्य में XML विशेषताओं को जोड़ने के लिए बहुत अधिक दर्द था।

ध्यान दें कि यह कोड में भी सेट किया जा सकता है:

cell.setDescendantFocusability(FOCUS_BLOCK_DESCENDANTS);

मैंने यह भी एक कक्ष के अंदर एक ListView के साथ करने की कोशिश की, और मुझे इसे काम करने के लिए TouchEvent पर ओवरराइड करना पड़ा:

 public class NoTouchListView extends ListView { @Override public boolean onTouchEvent(MotionEvent ev) { return false; } } 

अपनी सूची पंक्ति लेआउट एक बार जांचें:

लेआउट या किसी भी दृश्य को एंड्रॉइड नहीं होना चाहिए: क्लिक करने योग्य = "सच्चा" और एंड्रॉइड: फोकसनीय = "सच्चा"

अगर ऐसा है तो बस इसे हटा दें और फिर से एप्लिकेशन को चलाएं।

यहां तक ​​कि मुझे भी यही समस्या हो रही थी, मुझे चेकबॉक्स आ रहा है, निम्नलिखित मुखौटा आइटम को क्लिक करेंक्लिकलिस्ट कार्य,

निम्नलिखित गुणों को चेकबॉक्स में जोड़ा गया,

 android:focusable="false" android:focusableInTouchMode="false" android:clickable="false" 

और ItemClickListner काम करना शुरू कर दिया।

विस्तृत उदाहरण के लिए आप लिंक के माध्यम से जा सकते हैं,

http://knowledge-cess.com/android-itemclicklistner-with-checkbox-or-radiobutton/

आशा है कि चीयर्स को मदद मिलती है !!

TextView के लिए आपको इसका उपयोग करना चाहिए

 android:textIsSelectable="false" 

https://developer.android.com/reference/android/widget/TextView.html#setTextIsSelectable

आप चाहते हैं कि क्या हासिल करने के लिए आपको ListView.setOnItemClickListener() का उपयोग करना चाहिए।