पर स्थिर संदर्भ नहीं बना सकता है। मैं एंड्रॉइड.एप के उप-वर्ग का उपयोग करके अपने एंड्रॉइड ऐप में गतिविधियों के दौरान एक वैश्विक चर संग्रहीत कर रहा हूं। आवेदन के रूप में जल्द ही सुनील द्वारा समझाया गया है (How to declare global variables in Android? में)।गैर-स्थैतिक विधि (एंड्रॉइड getAplicationContext())
दृष्टिकोण इस तरह दिखता है:
class MyApp extends Application {
private String myState;
public String getState(){
return myState;
}
public void setState(String s){
myState = s;
}
}
class Blah extends Activity {
@Override
public void onCreate(Bundle b){
...
MyApp appState = ((MyApp)getApplicationContext());
String state = appState.getState();
...
}
}
इस बिंदु तक, इस दृष्टिकोण मेरी क्रियाएँ में से किसी से वैश्विक चर तक पहुँचने के लिए ठीक काम किया है। लेकिन आज एक ही दृष्टिकोण का उपयोग कर, मैं निम्नलिखित त्रुटि मिली:
Cannot make a static reference to the non-static method getApplicationContext()
from the type ContextWrapper
पहले से महत्वपूर्ण अंतर यह है कि नई गतिविधि वास्तव में एक टुकड़ा (SherlockFragmentActivity, सटीक होना करने के लिए) है।
कोई भी विचार मैं ऐपस्टेट तक क्यों नहीं पहुंच सकता क्योंकि मेरे पास पहले है, और क्या कोई अच्छा कामकाज है?
बहुत धन्यवाद।
संपादित करें: अच्छी पकड़, मैट बी यह पता चला जगह मैं वास्तव में getApplicationContext फोन कर रहा हूँ() अन्य वर्ग के अंदर है। यहाँ बुला बिंदु है:
public class MyActivity extends SherlockFragmentActivity {
public static class AccountListFragment extends SherlockListFragment {
MyApp appState = ((MyApp)getApplicationContext());
...
}
...
}
इसके अलावा, जैसा नीचे वर्णित है, त्रुटि दूर चला गया जब मैं
MyApp appState = ((MyApp)getActivity().getApplicationContext());
कर सकते हैं हम आपके गतिविधि में वास्तविक कोड देखते हैं जो शेरलॉक फ्रैगमेंट एक्टिविटी बढ़ाता है? संपादित करें: मैंने 'एप्लिकेशन ऐपस्टेट = ((एप्लिकेशन) getAplicationContext()) की कोशिश की;' मेरे 'शेरलॉक फ्रैगमेंट एक्टिविटी' में और यह ठीक से संकलित करता है। –
मुझे नहीं पता कि इस कोड नमूने में आप उस विधि के लिए एक स्थिर संदर्भ बनाने का प्रयास कर रहे हैं। क्या आप वाकई सही लाइन पोस्ट कर चुके हैं? –
क्या आप उत्तर को सही के रूप में चिह्नित कर सकते हैं? – vanleeuwenbram