2012-07-22 35 views
9

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

मैं एक समारोह है कि मैं किसी भी गतिविधि से कॉल कर सकते हैं क्योंकि मैं कई गतिविधियों में किसी भी कोड को दोहराना नहीं करना चाहते कैसे बना सकता हूँ।

धन्यवाद।

उत्तर

12

अगर मैं उपयोगी कार्यों कि छोटी सहायक कार्यों है कि मैं कई क्रियाएँ से आह्वान करना चाहते हैं प्रदर्शन करते हैं, मैं एक वर्ग util कहा जाता है बना सकते हैं और वहाँ में पार्क। मैं उन्हें static बना देता हूं ताकि मुझे किसी वस्तु को आवंटित करने की आवश्यकता न हो।

public final class Util { 
    public final static int KIBI = 1024; 
    public final static int BYTE = 1; 
    public final static int KIBIBYTE = KIBI * BYTE; 

    /** 
    * Private constructor to prevent instantiation 
    */ 
    private Util() {} 

    public static String getTimeStampNow() { 
     Time time = new Time(); 
     time.setToNow(); 
     return time.format3339(false); 
    } 
} 

इन स्थिरांक और तरीकों का उपयोग करने के लिए, मैं उन्हें वर्ग के नाम से है, न कि किसी भी वस्तु से उपयोग कर सकते हैं:

int fileSize = 10 * Util.KIBIBYTE; 
String timestamp = Util.getTimeStampNow(); 

यहाँ एक ऐसे वर्ग मैंने लिखा का हिस्सा का एक उदाहरण है

इससे कक्षा में और भी कुछ है, लेकिन आपको विचार मिलता है।

3

आप आवेदन वर्ग का विस्तार कर सकते, तो अपने गतिविधियों में getApplication विधि कॉल और व्यवस्था विधि कॉल करने में अपने आवेदन वर्ग के लिए यह डाली। आप तो टैग खोजने

package your.package.name.here; 

import android.app.Application; 

public class MyApplication extends Application { 

    public void doSomething(){ 
     //Do something here 
    } 
} 

अपने प्रकट में होना चाहिए और एंड्रॉयड जोड़ें::

आप एक वर्ग है कि android.app.Application फैली बनाकर ऐसा कर नाम = "MyApplication" विशेषता।

अपनी गतिविधि वर्ग में आप तो ऐसा करके फ़ंक्शन को कॉल कर सकते हैं:

((MyApplication)getApplication()).doSomething(); 

वहाँ कुछ इसी तरह करने का अन्य तरीके हैं, लेकिन इस तरीके से एक है। दस्तावेज में यह भी कहा गया है कि ज्यादातर मामलों में एक स्थिर सिंगलटन बेहतर विकल्प है। आवेदन प्रलेखन उपलब्ध है पर: http://developer.android.com/reference/android/app/Application.html

+0

आप मुझे इस का एक उदाहरण दिखा सकते हैं, मुझे यकीन है कि यह कैसे – omega

+0

किया जाता है मैं एक नया जावा फाइल में उपरोक्त कोड रखूँ नहीं कर रहा हूँ? और "android: name =" MyAplication "के लिए, मैं इसे मैनिफेस्ट में कैसे जोड़ूं? – omega

+1

यदि आप एक्लिप्स का उपयोग कर रहे हैं, तो मैं एप्लिकेशन क्लास बनाने के लिए "क्लास जोड़ें" मेनू बिंदु का उपयोग करके उत्साहित हूं। और मैनिफेस्ट के लिए, मैनिफेस्ट फ़ाइल खोलें और इस तरह की एक रेखा की तलाश करें: और नाम विशेषता जोड़ सकते हैं ताकि यह <आवेदन एंड्रॉयड की तरह कुछ हो जाता है: आइकन =" @ drawable/ic_launcher "एंड्रॉयड: लेबल =" @ स्ट्रिंग/app_name "एंड्रॉयड: विषय =" @ शैली/AppTheme "एंड्रॉयड: नाम =" MyApplication "> – Dimse

0

आप एक स्थिर विधि या किसी वस्तु है कि इस विधि में शामिल है बना सकते हैं।

0

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

Shachar

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