2012-08-15 34 views
11

मैं एक वर्ग है जो एक एपीआई से एक सूची प्राप्त करने के लिए गतिविधि फैली ...गतिविधि को विस्तारित करने और ListActivity बढ़ाने के बीच क्या अंतर हैं?

जो मूल रूप से भी ऐसा ही कुछ ऐप्स में उपयोग कर रहा हूँ, devs बढ़ाया ListActivity ...

कौन सा मतभेद हैं?

उत्तर

11

ListActivity यदि आप चाहें तो कई प्रकार की सूची केंद्रित सुविधाओं को 'मुक्त' प्रदान करके सामान्य android.app.Activity की कार्यक्षमता को बढ़ाता है। उदाहरण के लिए, सूची एंट्री क्लिक का प्रबंधन अच्छी तरह से ListActivity's onListItemClick(...) के भीतर निहित है, जबकि यदि आप सादे android.app.Activity का उपयोग कर रहे थे तो आपको इसे OnClickListener और कार्यान्वयन के साथ मैन्युअल रूप से कार्यान्वित करने की आवश्यकता होगी।

सभी खातों में, यदि आपके लेआउट में एक सूची है तो सूची सूची/सूचीफ्रेममेंट का उपयोग करें क्योंकि यह एक उपयोगी विस्तार है। इसका मतलब यह नहीं है कि आपका पूरा स्क्रीन लेआउट सूचीबद्ध होना चाहिए लेकिन इसके एक हिस्से को पहचानकर्ता के साथ ListView विजेट होस्ट करना है, id="@android:id/list"

क्लास पर जावाडोक इसका उपयोग करने के उपयोगी उदाहरणों के साथ here पाया जा सकता है।

+0

ओओह। कई जवाब एक ही बात कह रहे हैं! इसे अंडरगॉग को दें! :) – OceanLife

+0

ठीक है, प्रदर्शन के अनुसार सूची एक्टिविटी का उपयोग करना बेहतर है? – BamsBamx

+0

अनिवार्य रूप से वे एक ही बात हैं लेकिन ListActivity में कुछ उपयोगी सहायक विधियां हैं जिन्हें शायद एंड्रॉइड टीम द्वारा कुशलतापूर्वक और अच्छी तरह कार्यान्वित किया गया है, इस प्रकार उनकी क्षमताओं में से सर्वश्रेष्ठ प्रदर्शन कर रहे हैं। प्रदर्शन और सूचियों के साथ कहीं अधिक प्रासंगिक वस्तु आपके कर्सर का प्रबंधन कर रही है और केवल 10 आइटमों का उपयोग करने के लिए सूची में सभी वस्तुओं को पुनर्प्राप्त करने जैसी मूर्ख चीजें नहीं कर रही है। – OceanLife

3

ListActivities विशेष रूप से ListViews के साथ उपयोग करने के लिए डिज़ाइन किए गए हैं। यह onListItemClick() जैसे कई सहायक तरीकों को प्रदान करता है, जो उनमें ListView का उपयोग करना आसान बनाता है।

आप सूची एक्टिविटी में किसी गतिविधि में कुछ भी कर सकते हैं जो आप कर सकते हैं।

यदि आप किसी सूची एक्टिविटी के लेआउट को बदलना चाहते हैं तो भी आप गतिविधि से setContentView() विधि के साथ कर सकते हैं। जब तक आपकी सूची में कहीं भी @android: id/list नामक एक सूची दृश्य है, तो सूची अभी भी काम करेगा।

यदि आप अभी भी सुनिश्चित नहीं हैं, तो आप हमेशा ListActivity (जेली बीन कोड से जुड़े) के लिए स्रोत कोड देख सकते हैं और देख सकते हैं कि यह आपके जीवन को थोड़ा आसान बनाने के अलावा अन्य सभी नहीं करता है।

2

ListActivity से विस्तार से आप अनुबंध से सहमत हैं कि आपकी गतिविधि के लेआउट में ListView घटक उपलब्ध होगा।

आपका ListView घटक आईडी होना चाहिए: @android:id/list

ListView वर्ग आप को छिपाने के लिए onCreate में नीचे दिए गए कोड का उपयोग कर सकते काम करने और छेड़छाड़ ListView

0

इसके अलावा, एक नियमित रूप से Activity में के लिए सुविधाजनक तरीके प्रदान ऐप टाइटलबार। ऐसा लगता है कि आप ListActivity में ऐसा नहीं कर सकते हैं। (यह कठिन तरीका सीखा)

requestWindowFeature(Window.FEATURE_NO_TITLE); 
setContentView(R.layout.activity_list); 
// The rest of the content of onCreate