2012-03-13 21 views
5

यहाँ मेरी उपयोग मामला है:मैं विभिन्न टुकड़ों में एक एंड्रॉइड खंड उदाहरण का पुन: उपयोग कैसे कर सकता हूं?

मैं ActionBar Navigation Tabs का उपयोग कर 3 टैब बनाने की जरूरत है, और मैं ActionBarSherlock उपयोग कर रहा हूँ यह पूरा करने के। प्रत्येक 3 टैब में से प्रत्येक का अपना Fragment है। हालांकि, कुछ सामान्य जानकारी है जो प्रत्येक टैब में दिखायी जाती है (मेरे मामले में, उत्पाद शीर्षक, विवरण)। मैंने इस सामान्य जानकारी के लिए एक और टुकड़ा बनाया है, और this जैसे प्रत्येक मुख्य टुकड़े लेआउट में इस टुकड़े का संदर्भ दे रहा हूं।

मैं टुकड़ा उदाहरण है कि प्राप्त करता है और आम जानकारी प्रदर्शित करता है पुन: उपयोग करना चाहते हैं:

यहाँ मेरी समस्या है। मैं नीचे दिए गए कोड का उपयोग कर रहा हूं, लेकिन यह हमेशा मुख्य टुकड़ों में सामान्य टुकड़े का एक नया उदाहरण बनाने लगता है।

FragmentManager fm = getFragmentManager(); 
    f = (ProductDetailsInfoFragment) fm.findFragmentByTag("prodinfo"); 

    if (f == null) { 
     Log.d(TAG, "fragment not found...creating new instance"); 

     f = new ProductDetailsInfoFragment(); 
     f.setTargetFragment(this, 0); 
     fm.beginTransaction().replace(R.id.prod_info_fragment, f, "prodinfo").commit();   
    } 
+0

आप एक टुकड़े के समान उदाहरण का पुन: उपयोग नहीं कर सकते हैं, आपको किसी अन्य खंड पर उपयोग करने के लिए एक नया बनाना होगा। –

+0

उह, यही वह है जिसे मैं डरता था। मुझे लगता है मुझे कैशिंग के लिए टुकड़े में कुछ तर्क जोड़ना होगा ताकि मैं डेटा को कई बार पुनर्प्राप्त न करूं। – Sanjeev

उत्तर

2

यदि आप चाहते हैं तो आप टुकड़े साझा कर सकते हैं। आपको ActionBar.TabListener को लागू करने की आवश्यकता होगी और आपके ऑन-टैब में चयनित चुनें कि आप किस टुकड़े का उपयोग करना चाहते हैं।

आप कुछ इस तरह कर सकता है: https://gist.github.com/anonymous/5415274

एक बेहतर विकल्प डेटा है कि एक अलग वस्तु है कि आप उन दोनों के बीच साझा कर सकते हैं में इन टुकड़ों से दोनों के लिए आवश्यक है स्टोर करने के लिए है। यदि आप चाहें तो यूआई के बिना यूआई संलग्न किए बिना पुनर्प्राप्ति का परीक्षण करने की अनुमति होगी। यह दोनों टुकड़ों को अलग करने की इजाजत देता है, क्योंकि उन्हें एक ही उद्देश्य की बनाम बनाते हैं, जिससे वे एक ही टुकड़े में दोनों कार्यों के लिए आवश्यक सभी कोडों को रखने के लिए बनाते हैं।

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

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