2011-02-01 11 views
8

मेरे आवेदन में 14 गतिविधियां हैं। उस 9 गतिविधि में से कस्टम शीर्षक बार और टैब फलक शामिल है। तो यहां मुझे कस्टम कोड बार और टैब फलक कोड (यानी लेआउट और इसकी गतिविधि विशिष्ट कोड)एंड्रॉइड गतिविधियों के कुछ हिस्सों के लिए मैं सामान्य कोड कैसे बना सकता हूं?

यह करने के संभावित तरीके क्या हैं, इस गतिविधि में अनावश्यक कोड की बजाय मुझे एक ही स्थान पर यह सामान्य कोड लिखना होगा?

उत्तर

11

आम तरीका है:

  • एक सुपर वर्ग कहा जाता है, उदाहरण के लिए, CommonActivity जो फैली Activity
  • फिर अपनी गतिविधियों का विस्तार CommonActivity बजाय Activity बनाने के उस वर्ग
  • अंदर बॉयलरप्लेट कोड रखो बनाएं :

यहां एक साधारण उदाहरण:

public class CommonActivity extends Activity{ 
    public void onCreate(Bundle b){ 
     super.onCreate(b); 
     // code that is repeated 
    } 

    protected void moreRepeatitiveCode(){ 
    } 
} 

और अपने वर्तमान गतिविधियों:

public class AnActivity extends CommonActivity{ 
    public void onCreate(Bundle b){ 
     super.onCreate(b); 
     // specific code 
    } 
} 
+0

जोड़ने के लिए मत भूलना 'super.onCreate (ख)' समारोह, या संकलक के शरीर में परेशान हो जाएगा। –

+0

अच्छी पकड़, पॉल। खैर, संकलक शिकायत नहीं करेगा अगर कोई super.onCreate (बी) को भूल जाता है, यह पूरी तरह से कानूनी है, लेकिन यह आवश्यक है क्योंकि आप सुपर क्लास के बॉयलरप्लेट कोड को निष्पादित करना चाहते हैं। – Cristian

+0

हालांकि सुपर विधियों को कॉल छोड़ना कानूनी है, यदि आप गतिविधि वर्ग के जीवन चक्र विधियों के साथ ऐसा नहीं करते हैं, तो यह रनटाइम पर असफल हो जाएगा। – Cristian

1

हम्म .. आम कोड हमेशा गतिविधि वर्ग लेकिन सिर्फ नियमित रूप से कक्षा में रहने की जरूरत नहीं है। सामान्य कोड वर्ग का जिक्र करते हुए हम अपनी आवश्यकताओं के अनुसार उन विधियों को कॉल कर सकते हैं।

क्या मैं इस example के साथ सही हूँ?

मामले में बेशक हम, गतिविधि की तरह इसकी जरूरत ऊपर प्रस्ताव पूरी तरह से काम करता है, तो हम गतिविधि जीवन चक्र का ख्याल रखना होगा और हम लिए मत भूलना फ़ाइल प्रकट करने के लिए जोड़ें।

सामान्य गतिविधियों में केवल यूआई बनाना चाहिए, घटनाओं को संभालना चाहिए और हमारे ऐप में अन्य घटकों के लिए व्यावसायिक तर्क और/या अन्य कार्रवाइयां प्रतिनिधि करना चाहिए।

चीयर्स

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