5

मुझे काम पर कुछ कोड विरासत में मिला और मेरे पास कुछ कार्यान्वयन के बारे में एक सवाल है। जिस एप्लिकेशन पर मैं काम कर रहा हूं वह एक गतिविधि है जिसमें लगभग 15 अलग-अलग टुकड़े होते हैं। गतिविधि इन टुकड़ों को संभालने में तर्क मोटे तौर पर निम्नलिखित स्यूडोकोड साथ संक्षेप किया जा सकता है:क्या एक ही गतिविधि में कई टुकड़ों को संभालने के लिए एक एंड्रॉइड डिज़ाइन पैटर्न है?

if (button_1 selected) { 
    load fragment_1; 
} else if (button_2 selected) { 
    load fragment_2; 
} else if (button_3 selected) { 
    load fragment_3; 
} ...and so on x15ish 

मेरा प्रश्न है: एंड्रॉयड डिजाइन पैटर्न के कुछ प्रकार इन परिस्थितियों को संभालने के लिए वहाँ मौजूद है? कोड काम करता है; हालांकि, अगर मैं/अन्य या केस स्टेटमेंट के साथ एक विशालकाय के साथ बहुत सहज महसूस नहीं करता हूं। मैंने यह question देखा और यह मेरी समस्या के समान ही लगता है। मैंने इंटरनेट पर काफी कुछ खोजा लेकिन मुझे इस तरह के परिदृश्य के लिए उदाहरण या सर्वोत्तम प्रथाएं नहीं मिलीं।

अगर कोई मुझे सही दिशा में इंगित कर सकता है या कुछ सुझाव दे सकता है; वह कमाल होगा। धन्यवाद!

+0

आप इस जाँच की है http://developer.android.com /intl/zh-cn/training/basics/fragments/communicating.html? –

+0

आपके पास आमतौर पर एक if-else श्रृंखला नहीं होती है, आमतौर पर आप खंडों को बदलने के लिए टैब का उपयोग करते हैं या प्रत्येक टुकड़े – Nanoc

+0

@ खजहरहायत के लिए क्लिक विधियों पर क्लिक करते हैं, हाँ मैंने टुकड़ों पर पढ़ने का मेरा उचित हिस्सा किया है और मैंने इसे काफी हद तक उपयोग किया है कुछ परियोजनाएं हालांकि, इस परिदृश्य में, मैंने वास्तव में एक ही गतिविधि में निहित टुकड़ों की संख्या कभी नहीं देखी है और अगर/अन्य कथन में लागू किया गया है। सादगी के लिए – dungtatas

उत्तर

0

आपको यह नहीं देखना चाहिए कि कौन सा बटन चुना गया है, बल्कि सही टुकड़े का चयन करने के लिए बटन के ऑनक्लिक लिस्टनर का उपयोग करें।

buttonForFragment1.setOnClickListener(new View.OnClickListener() { 
    public void onClick(View v) { 
      // select fragment 1 here 
    } 
}); 

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

0

प्रत्येक बटन अपने लेआउट में आप अपनी गतिविधि में एक विधि प्रदान कर सकते हैं के लिए:

<Button 
    ... 
    android:onClick="startFragmentOne" /> 

फिर उन तरीकों को लागू:

public void startFragmentOne(View view) { 
    //TODO 
} 
संबंधित मुद्दे