2013-01-02 19 views
6

मेरे पास 2 गतिविधियां हैं: ए, बी। ए गतिविधि ए के पास, एक व्यू ग्रुप है जो उपयोगकर्ता अपनी सामग्री को बदलता है। गतिविधि बी में, मुझे उस व्यूग्रुप को फिर से दिखाना होगा, बिना किसी बदलाव के, यह उस व्यू ग्रुप की वास्तविक प्रति होना चाहिए , तो ग्रंथ, रंग, आयाम, आदेश (बच्चों के) और ... एक जैसा होना चाहिए। इसलिए मैं Layout Inflater का उपयोग नहीं कर सकता। क्या यह दृश्य समूह के प्रकारों के वर्गों के बिना कक्षाओं को बनाने और गुणों को बदलने के बिना संभव है? क्योंकि अगर मेरे पास है विभिन्न व्यू ग्रुप के साथ 2 से अधिक गतिविधि, पिछली गतिविधि में प्रत्येक गतिविधि के व्यूग्रुप को दिखाना बहुत मुश्किल है।एक दृश्य की एक प्रति बनाना?

इसके अलावा मैं उन दृश्य समूहों को अपने माता-पिता से नहीं हटा सकता।

+1

http://stackoverflow.com/questions/4159211/how-do-i-clone-a-view –

उत्तर

1

एक ऐसा वर्ग बनाएं जो आपके व्यू समूह की कॉन्फ़िगरेशन रखता हो। इस कॉन्फ़िगरेशन क्लास को अपने व्यू ग्रुप से संबंधित सभी जानकारी रखने दें। यह ग्रंथों को रखेगा, रंग आयामों को रंग देगा और सब कुछ बदल गया है। गतिविधि ए से गतिविधि बी तक इस वर्ग का ऑब्जेक्ट पास करें और इसका उपयोग करके, उसी लेआउट को बढ़ाकर उसी दृश्य को पुन: उत्पन्न करें।

उम्मीद है कि मदद करता है।

और अपने प्रश्न का उत्तर देने के लिए, ऐसा करने का कोई और आसान तरीका नहीं है।

+0

क्या इसके उदाहरण से किसी दृश्य की सभी कॉन्फ़िगरेशन प्राप्त करने का कोई तरीका है? उदाहरण के लिए कोई कक्षा है एक दृश्य की विन्यास? –

+0

नहीं। आपको अपनी खुद की कक्षाएं बनाना और वेरिएबल्स घोषित करना है जिन्हें आप विचारों को पुन: उत्पन्न करने के लिए महत्वपूर्ण पाते हैं। – Enigma

4

ऐसा करने का कोई आसान तरीका नहीं है। आप गतिविधियों के बीच दृश्य को स्थानांतरित नहीं कर सकते हैं।

  • viewGroup की एक बिटमैप बना सकते हैं और नई गतिविधि में में दिखाई देते हैं (काम नहीं करता है आप सकनेवाली प्रति की जरूरत है)
  • वर्ष गतिविधि में देखने के hierarchi राज्य को बचाने और नया एक में इसे पुन:: तो आप कई विकल्प हैं (टुकड़ों का उपयोग करना इसे आसान बनाता है)।
  • नई गतिविधि न बनाएं। बस पुराने यूआई भागों को लक्षित करें, लक्ष्य दृश्य समूह को स्पर्श न करें।
5

यदि उनकी सामग्री समान होगी, तो दो अलग-अलग गतिविधियां होने में कोई बात नहीं है। आप गतिशील रूप से एक गतिविधि की सामग्री को बदल सकते हैं और व्यवहार वही होगा जैसा कि दो गतिविधियां थीं। यदि यह वास्तव में जरूरी है, तो आपको फिर से गतिविधि को पुनर्निर्माण और नई बनाई गई गतिविधि को पास करने के लिए सभी आवश्यक जानकारी को सहेजना होगा। this पर एक नज़र डालें।

1

व्यू ग्रुप के लिए साझा करने की आवश्यकता है, इसे सी नामक एक टुकड़े में दोबारा दोहराएं। फिर गतिविधि ए और बी के अनुभागों के लिए टुकड़े बनाएं इस साझा हिस्से को घटाएं। फिर इन सभी टुकड़ों को एक नई गतिविधि के भीतर शामिल करें (अब आपको ए और बी की आवश्यकता नहीं होगी)।

फ्रैगमेंट ए और सी नई गतिविधि ए होगा। फ्रैगमेंट्स बी और सी नई गतिविधि बी होगी। पहले राज्य से दूसरी स्थिति में संक्रमण के लिए, फ्रैगमेंट बी को जोड़ने और फ्रैगमेंट ए को हटाने के लिए याद रखें। यह लेनदेन बैक स्टैक पर है ताकि बैक बटन आपको पहले राज्य में लाएगा।

1

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

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