2012-11-17 14 views
6

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

+1

AFAIK, यह काम नहीं करेगा। आप अपने मौजूदा खंड पर स्वाइप के लिए देखने के लिए 'जेस्चरडेक्टर' का उपयोग कर सकते हैं। – CommonsWare

+0

बीटीडब्लू, स्पष्टीकरण के लिए, मुझे लगता है कि आप का मतलब है कि आप एक टुकड़ा * उदाहरण * का उपयोग करना चाहते हैं - यदि आपका मतलब है कि आप केवल एक टुकड़ा * वर्ग * का उपयोग करना चाहते हैं, तो यह बिल्कुल ठीक है। – CommonsWare

उत्तर

4

आप अपने व्यूपेजर में प्रत्येक पृष्ठ के लिए उसी फ्रैगमेंट क्लास को तुरंत चालू कर सकते हैं, जो व्यूपेजर की स्थिति को प्रदर्शित करने के लिए नियंत्रित करने के लिए स्थिति को पार कर सकता है। ऐसा ही कुछ:

public class MyFragment extends Fragment { 

    private int mIndex; 

    public MyFragment(int index) { 
     mIndex = index; 
    } 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
       Bundle savedInstanceState) { 

     switch(mIndex){ 
      case 0: 
      // do you things.. 
      case 1: 
      // etcetera 
     }    
    } 
} 

फिर, आप में FragmentPagerAdapter:

public static class MyAdapter extends FragmentPagerAdapter { 
    public MyAdapter(FragmentManager fm) { 
     super(fm); 
    } 

    @Override 
    public int getCount() { 
     return NUM_ITEMS; 
    } 

    @Override 
    public Fragment getItem(int position) { 
     return new MyFragment(position); 
    } 
} 

इस तरह आप को बदलने के लिए अपने कोड के सबसे पुन: उपयोग कर सकते हैं केवल क्या आप स्विच/मामले बयान में की जरूरत है।

+0

लेकिन आप खंड वर्ग –

3

आपने class बनाम object of class की अवधारणा को गलत समझा। आपका MyFragment.java स्रोत कोड class जो आप बारी को परिभाषित करता है "जीवित चीज़" हर बार जब आप new ऑपरेटर (new MyFragment();) के साथ का दृष्टांत इसे में - इस object जो आपके class के instance है बनाता है। जब तक आप जानबूझकर इसे रोकते हैं (यानी सिंगलटन पैटर्न का उपयोग करके) आप class के instances को जितना चाहें उतना बना सकते हैं, वैसे ही आपको एकल नुस्खा का उपयोग करके कई यानी केक बनाने की अनुमति है। और यह टुकड़ों पर भी लागू होता है।

तो जब तक आप बनाने के रूप में अलगobject (उर्फ कहा instance) प्रत्येक पृष्ठ के लिए अपने class की है, तो आप आप क्या चाहते हैं ऐसा करने में सक्षम होना चाहिए।

+0

का एक गैर-खाली कन्स्ट्रक्टर नहीं बना सकते हैं, क्या आप उपर्युक्त स्पष्टीकरण के लिए कुछ नमूना प्रदान कर सकते हैं ..? – Harsha