java - how do I access this class -


<पूर्व> import android.content.Context; आयात करें android.content.SharedPreferences; Import android.net.Uri; सार्वजनिक कक्षा लोडसेटिंग्स {सार्वजनिक स्थिर शून्य लोडमैय सेटिंग्स (संदर्भ सीटीएक्स) {साझा किए गए साझा किए गए साझाकरण संदर्भ = सीटीएक्स.गेट शेयर किए गए संदर्भ ("MY_SHARED_PREF", 0); स्ट्रिंग strSavedMem1 = sharedPreferences.getString ("gSendTo", ""); स्ट्रिंग strSavedMem2 = साझा किए गए संदर्भ .getString ("gInsertInto", ""); स्ट्रिंग cCalId = साझा किए गए संदर्भ.गेट स्ट्रिंग ("जीसीआईडीआईडी", ""); setInsertIntoStr (strSavedMem2); setSendToStr (strSavedMem1); } निजी स्थिर स्ट्रिंग cSendToStr; निजी स्थिर स्ट्रिंग cInsertIntoStr; निजी इंक cCalId; निजी उरी सी। कैलेंडर्स; सार्वजनिक स्ट्रिंग getSendToStr () {this.c.SendToStr लौटें; } सार्वजनिक स्थिर शून्य setSendToStr (स्ट्रिंग pSendToStr) {cSendToStr = pSendToStr; } सार्वजनिक स्ट्रिंग getInsertIntoStr () {return this.cInsertIntoStr; } सार्वजनिक स्थिर शून्य सेटइंसेर्टइनटोसट्र (स्ट्रिंग पीआईएनएसएनटीईटीएसटीआर) {cInsertIntoStr = pInsertIntoStr; }}

कॉलिंग क्लास से मैंने बहुत सारे प्रयास किए हैं।

  LoadSettings.LoadMySettings (this);   

लेकिन जब मैं उदाहरण के लिए कुछ डेटा प्राप्त करने का प्रयास करता हूं।

  textSavedMem1.setText (LoadSettings.getSendToStr ());   

मुझे एक रिक्त त्रुटि मिलती है।

लोडमैय सेटिंग्स कोई वर्ग नहीं है, लेकिन एक विधि है (यदि आप जावा भाषा के लिए ओरेकल / सन के नामकरण सम्मेलनों का पालन करते हैं, तो यह एक छोटे से मामला से शुरू होना चाहिए)।

आप इसे LoadSettings.loadMySettings (someContext) , जहां someContext आसपास के पास करने के लिए संदर्भ है आपके उदाहरण में, हम नहीं जानते कि यह क्या संदर्भित है, इसलिए शायद आपकी त्रुटि वहां है।


तब जब आप ऐसा करेंगे: textSavedMem1.setText (LoadSettings.getSendToStr ());

आप एक गैर-स्थिर विधि कॉल करते हैं, इसलिए यह या तो LoadSettings की एक आवृत्ति का उपयोग करना चाहिए, कोड, आप getSendToStr को बदल सकते हैं:

  सार्वजनिक स्थिर स्ट्रिंग getSendToStr () {return cSendToStr; }   

हालांकि ऐसा लगता है कि खराब डिज़ाइन नहीं है।

शायद अगर आप हमें जो कुछ करने की कोशिश करते हैं, तो हम आपको और अधिक बता सकते हैं, जैसे कि हमारे जवाब सिर्फ एक कदम आगे ले जाएगा।


संपादित करें: ठीक है, मैंने अभी सोचा कि आप क्या करने की कोशिश कर रहे हैं ...

आपको वापस जाने और बुनियादी जावा अवधारणाओं सीखने और एक्सेस संशोधक , और कन्स्ट्रक्टर पहले, और ओ ओ सामान्य में जावा में सिमेंटिक्स।

इस पर अपनी कक्षा बदलें:

  सार्वजनिक वर्ग लोडसेटिंग्स {सार्वजनिक लोड सेटिंग्स (संदर्भ सीटीएक्स) {साझा किए गए साझा किए गए साझा किए गए संदर्भ = ctx.getSharedPreferences ("MY_SHARED_PREF" , 0); स्ट्रिंग strSavedMem1 = sharedPreferences.getString ("gSendTo", ""); स्ट्रिंग strSavedMem2 = साझा किए गए संदर्भ .getString ("gInsertInto", ""); स्ट्रिंग cCalId = साझा किए गए संदर्भ.गेट स्ट्रिंग ("जीसीआईडीआईडी", ""); setInsertIntoStr (strSavedMem2); setSendToStr (strSavedMem1); } निजी स्ट्रिंग cSendToStr; निजी स्ट्रिंग cInsertIntoStr; निजी इंक cCalId; निजी उरी सी। कैलेंडर्स; सार्वजनिक स्ट्रिंग getSendToStr () {वापसी cSendToStr; } सार्वजनिक शून्य setSendToStr (स्ट्रिंग pSendToStr) {cSendToStr = pSendToStr; } सार्वजनिक स्ट्रिंग getInsertIntoStr () {वापसी cInsertIntoStr; } सार्वजनिक शून्य setInsertIntoStr (स्ट्रिंग pInsertIntoStr) {cInsertIntoStr = pInsertIntoStr; }}   

और LoadSettings का एक नया उदाहरण बनाओ:

  LoadSettings mySettings = new LoadSettings (someContext);   

आप तब सही तरीके से आह्वान कर सकते हैं:

  textSavedMem1.setText (mySettings.getSendToStr ());    

Comments

Popular posts from this blog

java - NullPointerException for a 2d Array -

python - Assemble mpeg file unable to play in mediaplayer -

c# - NameSpace Manager or XsltContent to parse aspx page -