2011-11-24 13 views
8

मैं एंड्रॉइड (जावा) विकास के लिए बिल्कुल नया हूं और मैं इसके बारे में बहुत उत्साहित हूं! Google की डेवलपर मार्गदर्शिका शानदार है और मैंने थोड़ी देर में बहुत कुछ सीखा। यह मुझे रात के दौरान भी जागता रहता है;)गतिविधि के लिए विस्तार कक्षा

आज मैं मेनू बनाने के माध्यम से चला गया और ऐसा कुछ है जिसे मैं समझ नहीं पा रहा हूं। यह कक्षाओं के विस्तार के बारे में है। गाइड का कहना है:

युक्ति: यदि आपके आवेदन कई गतिविधियों में शामिल है और उनमें से कुछ एक ही विकल्प मेनू प्रदान हैं, तो) एक गतिविधि है कि onCreateOptionsMenu (सिवाय कुछ भी नहीं लागू करता है और onOptionsItemSelected() पद्धतियों बनाने पर विचार करें। फिर प्रत्येक गतिविधि के लिए इस कक्षा का विस्तार करें जो समान विकल्प मेनू साझा करना चाहिए। इस तरह, आपके पास मेनू क्रियाओं को संभालने के लिए कोड का केवल एक सेट प्रबंधित करने के लिए है और प्रत्येक वंशज वर्ग मेनू व्यवहार प्राप्त करता है।

बिंदु मैं नहीं मिलता है कि कैसे एक वर्ग का विस्तार करने के लिए है ... Let कहते हैं कि मैं एक MainActivity और एक SubActivity है। मैं दोनों गतिविधियों में एक ही मेनू रखना चाहता हूं इसलिए मैं मेनमेनूएक्टिविटी बना देता हूं। मैं इस कक्षा को दोनों गतिविधियों के लिए कैसे बढ़ा सकता हूं?

हाँ, मैंने नेट पर खोज की है लेकिन कोई भी उपयोगी नहीं मिल सका। मैं वास्तव में इसे समझना चाहता हूं इसलिए मुझे आशा है कि कोई भी मुझे कुछ नमूना + स्पष्टीकरण के साथ मदद कर सकता है। पहले ही, आपका बहुत धन्यवाद!!

+0

यह भी जांच [इस] (http: // stackoverflo w.com/questions/7618227/can-i-combine-my-code-into-some-kind-of-global-activity/7618263#7618263) बस आप जो बात कर रहे हैं उसके समान ही। –

उत्तर

18

क्या वे मतलब है निम्नलिखित:

आम तौर पर आप के लिए होता है:

public class MyActivity extends Activity{...} 

आप 4-5-6 ... है उन गतिविधियों के हैं, और उनमें से प्रत्येक एक ही मेनू का उपयोग करता है कोड, आप कोड 4-5-6 .. बार कॉपी और पेस्ट कर सकते हैं। या फिर आप ऐसा कर सकता है:

public class BaseActivity extends Activity{ 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     //My menu code 
    } 
} 

और अपने 4-5-6 ... गतिविधियों के लिए इस वर्ग का उपयोग करें:

public class MyActivity extends BaseActivity{...} 

इस तरह आप में अपने मेनू निर्माण कोड को कॉपी करने की जरूरत नहीं आपकी सभी गतिविधियां, और इसके अलावा, आपको मेनू के निर्माण के एक छोटे से हिस्से को संपादित करने के लिए 4-5-6 ... कक्षाओं को संपादित करने की आवश्यकता नहीं है। मेनू कोड अब MyActivity में भी है।


तुम भी एक नज़र here हो सकता था, यह क्या extends साधन बताते हैं।

+0

बहुत बहुत धन्यवाद !! अब मुझे लगता है, मैंने सोचा जितना आसान है !! – MartijnG

9

यह वास्तव में काफी सरल है।

MainMenuActivity

public class MainMenuActivity extends Activity { 
    //Override or add whatever functionality you want other classes to inherit. 
} 

MainActivity

public class MainActivity extends MainMenuActivity { 
    //Add what is specific to MainActivity. The menu will be inherited from MainMenuActivity. 
} 

SubActivity

public class SubActivity extends MainMenuActivity { 
    //Add what is specific to SubActivity. The menu will be inherited from MainMenuActivity. 
}