2010-08-18 15 views
5

क्षमा करें, मुझे पता है कि इस विषय को थोड़ा सा कवर किया गया है। मैंने संबंधित पोस्ट पढ़ी हैं और अभी भी थोड़ा उलझन में हूं। मैं एक ऐप पर काम कर रहा हूं कि प्रोटोटाइप में 3 मुख्य स्क्रीन होंगे, लेकिन अंततः इसमें दर्जनों होंगे। प्रत्येक स्क्रीन या तो बदनाम रूप से बदलती स्थिति पेश करेगी या उपयोगकर्ता इनपुट लेगी। कल्पना करने के लिए, एमएस वर्ड या एक ठेठ पीसी कैसे है, इस तरह से बाहर रखा जाना आवश्यक है। इसमें शीर्ष पर एक स्टेटस बार है और नीचे की ओर एक नेविगेशन बार है जो कि सभी स्क्रीनों के लिए आम है (कुछ स्क्रीनों के लिए मामूली बदलाव, जैसे अलग-अलग आइकन), मैं एक व्यू फलक कहूंगा जिसे अपडेट किया जाना चाहिए लागू लेआउटएंड्रॉइड क्रियाएँ बनाम दृश्य

स्थिति, एनएवी बार, और प्रत्येक स्क्रीन को अपने स्वयं के लेआउट xml फ़ाइल में परिभाषित किया गया है। इस पर मेरे पहले झुकाव के लिए मैंने अभी एक व्यूफ्लिपर का उपयोग किया और इसमें 3 स्क्रीन लेआउट लोड किए। हालांकि इसका मतलब है कि वर्तमान में मेरे पास एक मुख्य गतिविधि है जो रखरखाव योग्य नहीं होगी क्योंकि मैं स्क्रीन जोड़ना जारी रखता हूं।

  1. मुझे यह सही लगता है कि प्रत्येक स्क्रीन लेआउट में एक संबद्ध गतिविधि वर्ग होना चाहिए जो समझता है कि उस स्क्रीन को कैसे नियंत्रित किया जाए। मुझे यह समझने की जरूरत है कि इसे केंद्र फलक में गतिशील रूप से कैसे लोड किया जाए। हालांकि मैंने सोचा कि मैंने एक और पोस्ट में पढ़ा है कि कई क्रियाकलापों का उपयोग करना एक सीपीयू और रैम नाली हो सकता है।
  2. वर्तमान में मैंने स्क्रीनों में से एक को अपनी गतिविधि बनाने की कोशिश की और मुख्य उद्देश्य से इसे एक इरादा बनाकर और प्रारंभ गतिविधि को कॉल करने से दूर कर दिया। हालांकि, नई गतिविधि गतिविधि मुख्य गतिविधि के शीर्ष पर रहने का कारण बनती है। दिलचस्प बात यह है कि फिर बैक बटन दबाकर उस गतिविधि को खारिज कर दिया और मुझे मुख्य पर वापस कर दिया।
  3. अब तक मुझे पता नहीं चला है कि केंद्र फलक में क्या होता है, एक अलग गतिविधि नियंत्रण स्थापित करने के तरीके को कैसे स्थापित किया जाए।
  4. यदि मैं एकाधिक गतिविधि पथ को जारी रखता हूं, तो क्या मेरी मुख्य गतिविधि गतिविधि समूह से विरासत में होनी चाहिए?
  5. इस मामले में दृश्य कक्षाओं का अधिक उपयोग कर रहे हैं?

मुझे पता है कि यह एक लंबी पोस्ट रही है। मैं किसी भी सलाह की सराहना करता हूं। धन्यवाद! सीबी

उत्तर

3

जैसा कि आपने देखा है, एंड्रॉइड एक कार्य में प्रारंभिक गतिविधियों के ढेर को स्पष्ट रूप से ट्रैक करेगा, और 'बैक' बटन शीर्ष पर समाप्त होता है, जो अगले एक को फिर से सक्रिय करता है। मैं आपको यह सोचने की सलाह दूंगा कि उपयोगकर्ता किस प्रकार की चीजों को बैक बटन करने की उम्मीद कर सकता है, और इसे बना सकता है ताकि गतिविधियों को उन पंक्तियों से अलग किया जा सके।

मैंने ActivityGroup के साथ नहीं खेला है, इसलिए मैं आपको वहां सलाह नहीं दे सकता। यदि आप पूरी तरह से अलग गतिविधियों के साथ जाते हैं, तो आप उन्हें आम नौसेना/स्टेटस बार के साथ एक ही "खोल" सामग्री दृश्य का उपयोग कर सकते हैं। एक सुपरक्लास या यूटिलिटी क्लास हैंडल को वहां से पॉप्युलेट और प्रबंधित करना है। फिर अपने गतिविधि-विशिष्ट दृश्य के साथ बीच भरने के लिए LayoutInflater (आप getLayoutInflater() पर कॉल कर सकते हैं) का उपयोग करें।

यदि आप चाहते हैं कि गतिविधियों में से एक में कई स्क्रीन हों, तो आप अभी भी केंद्र स्लॉट में व्यूफ्लिपर के साथ समाप्त हो सकते हैं। दोबारा, आप एक गतिविधि संक्रमण चाहते हैं जहां भी आप चाहते हैं कि उपयोगकर्ता "वापस" जा सके; इसका मतलब यह भी है कि आप उन मामलों में गतिविधियों में बदलाव नहीं करना चाहेंगे जहां स्क्रीन निकट से संबंधित हैं या एक ही तार्किक चीज का हिस्सा हैं। (आप बैक बटन के व्यवहार को ओवरराइड कर सकते हैं, लेकिन जब तक आपके पास कोई अच्छा कारण न हो, तो ऐप को व्यवस्थित करना सबसे अच्छा है ताकि एंड्रॉइड का मूल सेटअप क्रॉस प्रयोजनों पर काम करने के बजाए आपके ऐप के यूआई की मदद कर सके।)

+0

इनपुट के लिए धन्यवाद, जिस दृष्टिकोण का मैं काम कर रहा हूं वह है कि मेरी मुख्य गतिविधि उपयोगकर्ता को प्रारंभिक स्क्रीन (ए, बी, या सी, प्रत्येक अपनी गतिविधि) का चयन करने के लिए प्रदान करे। मुख्य इसे प्रारंभिकता ForResult के साथ बंद कर देता है। उपयोगकर्ता एक नई स्क्रीन देखने के लिए बाएं/दाएं जाने के लिए एक क्लिक/स्वाइप के माध्यम से चुन सकता है। हालांकि मैं हैक कार्यान्वयन से खुश नहीं हूं। गतिविधि मुख्य पर लौटने के लिए स्वयं को परिभाषित करती है और उपयोगकर्ता पसंद को बाएं/दाएं पास करती है और मुख्य लागू गतिविधि शुरू होती है। बेशक अब वापस काम नहीं करेगा जैसा मैं चाहता हूं। सुझाव? – bursk

+0

आप कैसे काम करना चाहते हैं? –

+0

मान लीजिए कि मैंने अंतिम भाग गलत तरीके से लिखा है, वर्तमान क्रियान्वयन के साथ बैक बटन पर क्लिक करने से उपयोगकर्ता मुख्य स्क्रीन पर वापस ले जाएगा, जहां वे प्रदर्शित करने के लिए ए, बी, या सी चुनते हैं। हालांकि, यदि उपयोगकर्ता ए पर है और बी को देखने के लिए स्वाइप करता है, तो मुझे लगता है कि उम्मीद हो सकती है कि जब वे वापस आ जाएंगे तो वे मुख्य पर नहीं, ए पर वापस जाएं। हालांकि, मैं ऐसी परिस्थिति में भी नहीं जाना चाहता हूं जहां उन्होंने बहुत से लोगों के लिए नेविगेट किया हो और फिर बाहर निकलने से पहले बार-बार क्लिक करने की आवश्यकता हो। मैं अपने मुख्य में क्रियाकलापों के एक ऐरेलिस्ट को रखने और फिर इसे स्वयं संभालने की कोशिश करने की ओर झुका रहा हूं। – bursk

1

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

+0

मत भूलना - अब, गतिविधि समूह को बहिष्कृत किया गया है। – alshapton

1

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

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