मेरे पास एक आंतरिक वर्ग था जिसे मैं एक और सामान्य पुस्तकालय "हेल्पर" कक्षा में खींचना चाहता था। मेरे पास वही समस्या थी जो आप करते थे। मैं एक सार तत्व विधि के साथ, सहायक वर्ग सार बनाकर इसके चारों ओर मिल गया। फिर मेरे प्रोजेक्ट पैकेज में मैंने विशिष्ट वर्ग में एक कन्स्ट्रक्टर कॉल के साथ सहायक वर्ग बढ़ाया।
public class MyActivity extends Activity {
onCreate() {
MyHelperClass = new MyHelperClass(this, "foobar");
}
public void myMethod() {
// Code...
}
}
// In a different file
public class MyHelperClass extends HelperClass {
private MyActivity mInstance;
public MyHelperClass(MyActivity act, String data) {
super();
this.mInstance = act;
this.mActivity = act; // Useful for calling generic Activity methods in the HelperClass
this.mData = data;
}
protected void callMyActivityMethod() {
mInstance.myMethod();
}
}
// In a different file
public abstract class HelperClass {
protected Activity mActivity;
protected String mData;
public HelperClass() {
// Subclass will set variables
}
protected abstract void callMyActivityMethod();
// More code for all the other stuff the class does
}
इस तरह, मैं एक सहायक वर्ग है कि "काम" के विशाल बहुमत शामिल है, और सभी मैं क्या करना है आदेश तक पहुँच प्राप्त करने में निर्माता के साथ एक उपवर्ग और एक विधि बनाने के है कॉलिंग गतिविधि की रुचि की विधि।
पोस्ट कोड है कि आप MyMethod बुला कोशिश करने के लिए उपयोग किया है()। क्या आप माइएक्टिविटी ऑब्जेक्ट को तुरंत चालू कर रहे हैं? यदि नहीं, तो मुझे नहीं लगता कि आप myMethod() को कॉल करने में सक्षम होंगे क्योंकि यह स्थिर नहीं है। आप myMethod() स्थिर बनाने का प्रयास कर सकते हैं और फिर आप MyActivity.myMethod() को अपने MyClass से उपयोग करने में सक्षम होना चाहिए। अनुलेख मुझे उम्मीद है कि आपने यहां प्रदर्शन उद्देश्यों के लिए अपने वर्गों के नाम बदल दिए हैं।यदि वे हैं जिन्हें वे वास्तव में आपके प्रोजेक्ट में उपयोग कर रहे हैं तो आपको अधिक वर्णनात्मक नामों का उपयोग करने पर गंभीरता से विचार करना चाहिए। यह आपके कोड को समझने में आसान बना देगा। – FoamyGuy
@Tim मैंने MyClass में कन्स्ट्रक्टर को पास किए गए संदर्भ का उपयोग करके कॉल करने का प्रयास किया, जैसे .. – Deepak
क्रियाकलापों पर स्थैतिक तरीकों के लिए यह बहुत बुरा अभ्यास है, मैं आपको सलाह देता हूं कि आपको क्या करने की ज़रूरत है गतिविधि पर एक स्थिर विधि के बिना। – SnowyTracks