2013-04-10 5 views
5

में एक अंतर मैं एक कस्टम सरणी एडाप्टर बना रहा हूं, अब मैं एक फ़ंक्शन को कार्यान्वित करना चाहता हूं जो दृश्य पर क्लिक करता है। मेरे मन में दो विकल्प हैं, लेकिन मुझे आश्चर्य है कि प्रदर्शन/काम करने की गति या कुछ में कोई अंतर है या नहीं?listview.setOnItemClickListener और row.setOnClickListener

विकल्प 1, arrayAdapter अपने आप में:

row.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 


      } 
     }); 

विकल्प 2, मुख्य गतिविधि से:

listView.setAdapter(adapter); 
     listView.setOnItemClickListener(new OnItemClickListener() { 

      @Override 
      public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, 
        long arg3) { 
       // TODO Auto-generated method stub 

      } 


     }); 

या वे बिल्कुल वही कर रहे हैं?

उत्तर

5

या वे बिल्कुल वही हैं?

पहले दृष्टिकोण में आप प्रत्येक पंक्ति के श्रोता e.q. के लिए बनाएंगे। आपके पास 100 पंक्तियां हैं इसलिए आपके पास 100 श्रोताओं होंगे जो बिल्कुल भी अच्छे नहीं हैं। दूसरे दृष्टिकोण में आप संपूर्ण सूची दृश्य के लिए एक श्रोता बनाएंगे।

android.widget.AdapterView.OnItemClickListener 
android.view.View.OnClickListener 

आप कैसे देख सकते, पहले अधिक आरामदायक और सीधे एडाप्टर विगेट्स के साथ काम कर ListView है की तरह के लिए नामित है। इसके अलावा इस दृष्टिकोण की आमतौर पर अनुशंसा और उपयोग किया जाता है।

आपके पास ITemClick() विधि के पैरामीटर के माध्यम से प्रत्येक पंक्ति के साथ कनेक्शन है और कोड अधिक मानव-पठनीय है और यह स्पष्ट है।

संबंधित मुद्दे