{"id":1425,"date":"2022-08-30T15:16:25","date_gmt":"2022-08-30T15:16:25","guid":{"rendered":"https:\/\/unknownerror.org\/index.php\/2013\/11\/16\/please-help-me-get-sharedpreferences-saved-value-from-other-class-collection-of-common-programming-errors\/"},"modified":"2022-08-30T15:16:25","modified_gmt":"2022-08-30T15:16:25","slug":"please-help-me-get-sharedpreferences-saved-value-from-other-class-collection-of-common-programming-errors","status":"publish","type":"post","link":"https:\/\/unknownerror.org\/index.php\/2022\/08\/30\/please-help-me-get-sharedpreferences-saved-value-from-other-class-collection-of-common-programming-errors\/","title":{"rendered":"please help me get sharedpreferences saved value from other class-Collection of common programming errors"},"content":{"rendered":"<p>I am saving the value in sharedPreferences in one Class and trying to access it from another class but get null pointer exception. the value that i enter is url for web service. please help me.<\/p>\n<p>UrlSetting.java<\/p>\n<pre><code>public class UrlSetting extends Activity {\nEditText editUrl;\nTextView Savedurl;\nButton bSaveUrl, bback;\n\n@Override\npublic void onCreate(Bundle savedInstanceState) {\n    super.onCreate(savedInstanceState);\n    setContentView(R.layout.urlsetting);\n\n    Savedurl = (TextView)findViewById(R.id.savedurl);\n    editUrl = (EditText)findViewById(R.id.editurl);\n    bback = (Button)findViewById(R.id.back);\n    bSaveUrl = (Button)findViewById(R.id.saveurl);\n    bSaveUrl.setOnClickListener(buttonSaveUrlOnClickListener);\n    bback.setOnClickListener(new Button.OnClickListener(){\n\n        @Override\n        public void onClick(View arg0) {\n            \/\/ TODO Auto-generated method stub\n            Intent intent = new Intent(UrlSetting.this, Login.class);\n            \/*intent.setClass(UrlSetting.this, Login.class);*\/\n            startActivity(intent);\n        }});\n\n    LoadPreferences();\n}\nButton.OnClickListener buttonSaveUrlOnClickListener\n= new Button.OnClickListener(){\n\n    @Override\n    public void onClick(View arg0) {\n        \/\/ TODO Auto-generated method stub\n        SavePreferences(\"URL\", editUrl.getText().toString());\n        LoadPreferences();\n    }\n\nprivate void SavePreferences(String key, String value){\n    SharedPreferences sharedPreferences = getSharedPreferences(\"MY_SHARED_PREF\", MODE_PRIVATE);\n    SharedPreferences.Editor editor = sharedPreferences.edit();\n    editor.putString(key, value);\n    editor.commit();\n}\n\nprivate void LoadPreferences(){\n    SharedPreferences sharedPreferences = getSharedPreferences(\"MY_SHARED_PREF\", MODE_PRIVATE);\n    String strSavedurl = sharedPreferences.getString(\"URL\", \"\");\n    Savedurl.setText(strSavedurl);\n}\n<\/code><\/pre>\n<p>and this is my Koneksi.java<\/p>\n<pre><code>public class Koneksi{\n\nSharedPreferences sharedPreferences = getSharedPreferences(\"MY_SHARED_PREF\", MODE_PRIVATE);\nString url = sharedPreferences.getString(\"URL\", \"\");\npublic Koneksi(String urlml){\n\n    url= url + urlml;\n}\n\npublic String getUrl(){\n\n    return url;\n}\n<\/code><\/pre>\n<p>this is the LogCat<\/p>\n<pre><code>&gt; 05-21 11:39:44.542: W\/KeyCharacterMap(339): No keyboard for id 0\n05-21 11:39:44.542: W\/KeyCharacterMap(339): Using default keymap: \/system\/usr\/keychars\/qwerty.kcm.bin\n05-21 11:39:51.826: D\/TryLoginCheck(339): Here\n05-21 11:39:51.826: I\/System.out(339): UserNametes\n05-21 11:39:51.831: I\/System.out(339): passwordTes12345*\n05-21 11:39:51.831: D\/Parameters(339): username=tes&amp;password=Tes12345*\n05-21 11:39:51.831: D\/AndroidRuntime(339): Shutting down VM\n05-21 11:39:51.831: W\/dalvikvm(339): threadid=1: thread exiting with uncaught exception (group=0x40015560)\n05-21 11:39:51.851: E\/AndroidRuntime(339): FATAL EXCEPTION: main\n05-21 11:39:51.851: E\/AndroidRuntime(339): java.lang.NullPointerException\n05-21 11:39:51.851: E\/AndroidRuntime(339):  at android.content.ContextWrapper.getSharedPreferences(ContextWrapper.java:146)\n05-21 11:39:51.851: E\/AndroidRuntime(339):  at mobile.config.Koneksi.(Koneksi.java:13)\n05-21 11:39:51.851: E\/AndroidRuntime(339):  at com.karismaelearning.Login.tryLogin(Login.java:131)\n05-21 11:39:51.851: E\/AndroidRuntime(339):  at com.karismaelearning.Login$3.onClick(Login.java:80)\n05-21 11:39:51.851: E\/AndroidRuntime(339):  at android.view.View.performClick(View.java:2485)\n05-21 11:39:51.851: E\/AndroidRuntime(339):  at android.view.View$PerformClick.run(View.java:9080)\n05-21 11:39:51.851: E\/AndroidRuntime(339):  at android.os.Handler.handleCallback(Handler.java:587)\n05-21 11:39:51.851: E\/AndroidRuntime(339):  at android.os.Handler.dispatchMessage(Handler.java:92)\n05-21 11:39:51.851: E\/AndroidRuntime(339):  at android.os.Looper.loop(Looper.java:123)\n05-21 11:39:51.851: E\/AndroidRuntime(339):  at android.app.ActivityThread.main(ActivityThread.java:3683)\n05-21 11:39:51.851: E\/AndroidRuntime(339):  at java.lang.reflect.Method.invokeNative(Native Method)\n05-21 11:39:51.851: E\/AndroidRuntime(339):  at java.lang.reflect.Method.invoke(Method.java:507)\n05-21 11:39:51.851: E\/AndroidRuntime(339):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)\n05-21 11:39:51.851: E\/AndroidRuntime(339):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)\n05-21 11:39:51.851: E\/AndroidRuntime(339):  at dalvik.system.NativeStart.main(Native Method)\n05-21 11:39:54.301: I\/Process(339): Sending signal. PID: 339 SIG: 9\n<\/code><\/pre>\n<p>please help me to know what the mistake is. I don&#8217;t understand what&#8217;s wrong. thank you very much<\/p>\n<ol>\n<li>\n<p>try this way:<\/p>\n<pre><code>SharedPreferences sharedPreferences;\n\nonCreate(Bundle savedInstanceState){\n  sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);\n  \/\/ your code..\n}\n\nprivate void SavePreferences(String key, String value){\n\n    SharedPreferences.Editor editor = sharedPreferences.edit();\n    editor.putString(key, value);\n    editor.commit();\n}\n\nprivate void LoadPreferences(){\n\n    String strSavedurl = sharedPreferences.getString(\"URL\", \"\");\n    Savedurl.setText(strSavedurl);\n}\n<\/code><\/pre>\n<p>Edited:<\/p>\n<pre><code>    public class Koneksi{\n\n    SharedPreferences sharedPreferences;\n    Context myC;\n    String url = \"\";\n\n    public Koneksi(Context con){\n       myC = con;\n       sharedPreferences = PreferenceManager.getDefaultSharedPreferences(con);\n    }\n\n\n    public Koneksi(String urlml){\n\n        url= url + urlml;\n    }\n\n\n    public String getUrl(){\n        String url = sharedPreferences.getString(\"URL\", \"\");\n        return url;\n    }\n}\n<\/code><\/pre>\n<p>for call above class from activity:<\/p>\n<pre><code>Koneksi ob = new Koneksi(this);\nString URL = ob.getUrl();\n<\/code><\/pre>\n<\/li>\n<li>\n<p>try these two methods :p works well<\/p>\n<pre><code>public static void SavePreferences(String key, String name, String value,Context c) {\n    SharedPreferences sf = c.getSharedPreferences(key, 0);\n    SharedPreferences.Editor editor = sf.edit();\n    editor.putString(name, value);\n    editor.commit();\n    Log.w(\"Preference saved  .\", value);\n\n}\n\npublic static String LoadPreferences(String key, String name, Context c) {\n    SharedPreferences sf = c.getSharedPreferences(key, 0);\n    String val = null;\n    val = sf.getString(name, \"\");\n    return val;\n\n}\n<\/code><\/pre>\n<\/li>\n<li>\n<pre><code>   - you should be pass the context \n\n\n\n   mContext.getSharedPreferences(PREF_NAME, MODE_PRIVATE);\n\n\n\n\n  other wise use following code :-\n  import android.preference.PreferenceManager;\n  SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);\n  \/\/ then you use\n  prefs.getBoolean(\"keystring\", true);\n<\/code><\/pre>\n<\/li>\n<li>\n<p>These will give you <code>NPE<\/code><\/p>\n<pre><code>SharedPreferences sharedPreferences = getSharedPreferences(\"MY_SHARED_PREF\", MODE_PRIVATE);                                                          \nString url = sharedPreferences.getString(\"URL\", \"\");\n<\/code><\/pre>\n<p>Move the initializations to <code>onCreate()<\/code> which I don&#8217;t see but assuming you have since you are extending <code>Activity<\/code><\/p>\n<pre><code>public class Koneksi extends Activity {\n\n    SharedPreferences sharedPreferences; \/\/declare them here\n    String url;\n\n    public void onCreate(Bundle bundle)\n   {\n        super.onCreate(bundle);\n        setContentView(R.layout.your_layout);\n\n       sharedPreferences = getSharedPreferences(\"MY_SHARED_PREF\", MODE_PRIVATE);  \/\/ initialize them here\n       url = sharedPreferences.getString(\"URL\", \"\");  \/\/ intialize here\n\n    public Koneksi(String urlml){   \n        url= url + urlml;\n    }\n<\/code><\/pre>\n<p><code>SharedPreferences<\/code> needs a <code>Context<\/code> which isn&#8217;t available until after <code>onCreate()<\/code> is called. You can declare them before this as you are but you need to initialize them in <code>onCreate()<\/code> or another <code>Activity<\/code> method after <code>onCreate()<\/code>is called<\/p>\n<\/li>\n<li>\n<p>i dont know what is the problem with your code, i have working implementation for same..<\/p>\n<pre><code>    public class GreetingCardData {\n    public static final String SHARED_PREF_FILE     =   \"greetingCardData\";\n    public static final String KEY_DO_NOT_SHOW      =   \"doNotShow\";\n    public static final String KEY_CATEGORIES_JSON  =   \"categoriesJson\";   \n    private SharedPreferences sharedPrefs;\n    private Editor prefsEditor;\n\n    public GreetingCardData(Context context) {\n        this.sharedPrefs = context.getSharedPreferences(SHARED_PREF_FILE, 0);\n        this.prefsEditor = sharedPrefs.edit();\n    }   \n\n    public void setDoNotShowFlag ( boolean flag ){\n        prefsEditor.putBoolean( KEY_DO_NOT_SHOW, flag );\n        prefsEditor.commit();\n    }\n\n    public boolean getDoNotShowFlag(){\n        return sharedPrefs.getBoolean( KEY_DO_NOT_SHOW, false );\n    }\n\n    public void setGreetingcardJson( String jsonString ){\n        prefsEditor.putString( KEY_CATEGORIES_JSON, jsonString );\n        prefsEditor.commit();\n    }\n\n    public String getGreetingcardJsonString(){\n        return sharedPrefs.getString(KEY_CATEGORIES_JSON, \"\");\n    }    \n}\n<\/code><\/pre>\n<p>and you can access your pref. anywhere by just calling it like..<\/p>\n<pre><code>if( !new GreetingCardData(ActivityMain.this).getDoNotShowFlag())\n     startHomeActivity();   \n\n\nnew GreetingCardData(context).setGreetingcardJson(resBuffer.toString());\n<\/code><\/pre>\n<\/li>\n<\/ol>\n<p id=\"rop\"><small>Originally posted 2013-11-16 20:50:26. <\/small><\/p>","protected":false},"excerpt":{"rendered":"<p>I am saving the value in sharedPreferences in one Class and trying to access it from another class but get null pointer exception. the value that i enter is url for web service. please help me. UrlSetting.java public class UrlSetting extends Activity { EditText editUrl; TextView Savedurl; Button bSaveUrl, bback; @Override public void onCreate(Bundle savedInstanceState) [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-1425","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/posts\/1425","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/comments?post=1425"}],"version-history":[{"count":0,"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/posts\/1425\/revisions"}],"wp:attachment":[{"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/media?parent=1425"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/categories?post=1425"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/tags?post=1425"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}