I try Shared preferences for the first time and I am facing a problem. When i set my Shared Preferences:
SharedPreferences sp = getSharedPreferences();
The getSharedPreferences is red and there is also no suggestion from android studio to change it.
Do I have to update my gradle file or is that function replaced by something else?
You have to call .getSharedPreferences() on the current context (for example getActivity().getPreferences(Context.MODE_PRIVATE);).
You can see some examples here: https://developer.android.com/training/data-storage/shared-preferences.
SharedPreferences pref = getApplicationContext().getSharedPreferences("MyPref", 0);
Editor editor = pref.edit();
editor.putString("key_name", "string value"); // Storing string
editor.commit();
Get String from your SharedPreferences
SharedPreferences pref = getApplicationContext().getSharedPreferences("MyPref", 0);
String newval = pref.getString("key_name", null);
You should use context like below
private val sharedPreferences: SharedPreferences? =
context.getSharedPreferences("Preference", Context.MODE_PRIVATE)
The below code helped me:
SharedPreferences sh = appCompatActivity.getApplicationContext().getSharedPreferences("MySharedPref", Context.MODE_PRIVATE);
Related
I usually use this code for creating sharedPrefs file:
SharedPrefrences SP = getSharedPrefrences("MYPREF",0);
SP.getString("Username","x");
But now if I see this directory:
"/data/data/packageName/"
There is no shared_prefs directory.
Another thing : if I use Editor its work properly.
First you need to store some data in shared preferences using apply()/commit() method so that you retrieve data from there.
SharedPrefrences SP = getSharedPrefrences("MYPREF",0);
SP.edit().putString("Username","SOME NAME").apply();
System.out.println("Username is : "+SP.getString("Username","x"));
First of all you have to SET the data with an Editor
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
SharedPreferences.Editor editor = preferences.edit();
editor.putString("Name","Pepito");
editor.apply();
Then you can read it as follows :
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
String name = preferences.getString("Name", "Here's the default value");
If you've set the value after make that getString() your String value will be "Pepito", otherwise you'll get "Here's the default value"
I am saving a value in Preference, but it always give me the default value. When the app is opened, I can get the actual value. But when I am getting the value from the IntentService, it always give me the default value.
Code for saving the value:
prefs = context.getSharedPreferences(NAME, Context.MODE_PRIVATE);
Editor editor = prefs.edit();
editor.putString(key, value);
editor.commit();
Code for reading the value:
prefs = context.getSharedPreferences(NAME, Context.MODE_PRIVATE);
String value = prefs.getString(key, defaultValue);
But if i change file name then its working for some period but afterward again it start giving default value
Try changing your access mode from Context.MODE_PRIVATE since you are reading it from outside.
Try
prefs = context.getSharedPreferences(NAME, Context.MODE_MULTI_PROCESS);
Retrieving stuff from Shared Preferences:
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(Context);
String s = sp.getString("key", null); // get "value" from the Shared Preferences
I have a problem with SharedPreferences in Android.
This is my code:
SharedPreferences s = this.getSharedPreferences("kurs",MODE_WORLD_READABLE);
s.edit().putString("eur", "1.80");
s.edit().commit();
SharedPreferences a = this.getSharedPreferences("kurs",MODE_WORLD_READABLE);
String kurs = a.getString("eur","7");
Toast hhh= Toast.makeText(getApplicationContext(),kurs, Toast.LENGTH_LONG);
hhh.show();
I´m setting the String and want to read it out directly after that in the onCreate method. But i always get the specified default value "7".
What was wrong? I already researched for that problem, but i can´t found helpful things.
Thanks for your help :)
Each time you call "s.edit()" a new editor is created. Thus your "commit()" call is on an instance of the editor that has not had your setting applied. Try this:
SharedPreferences s = this.getSharedPreferences("kurs",MODE_WORLD_READABLE);
Editor editor = s.edit();
editor.putString("eur", "1.80");
editor.commit();
Please try my code below. What i think is wrong in your code, that you are using different "Editor" instances here:
"s.edit().putString("eur", "1.80");"
and here
s.edit().commit();
private static String APP_SHARED_PREFS = "MyAppID";
// Write the value
SharedPreferences.Editor prefsEditor = getSharedPreferences(APP_SHARED_PREFS, Activity.MODE_PRIVATE).edit();
prefsEditor.putString("KEY", "VALUE");
prefsEditor.commit();
// Get the value
return getSharedPreferences(APP_SHARED_PREFS, Activity.MODE_PRIVATE).getString("KEY", "");
SharedPreferences myPrefs = this.getSharedPreferences("kurs", MODE_WORLD_READABLE);
SharedPreferences.Editor editor = myPrefs.edit();
editor.putString("eur", "1.80");
// commit the edits
editor.commit();
SharedPreferences myPrefs = this.getSharedPreferences("myPrefs", context.MODE_WORLD_READABLE);
String kurs = myPrefs.getString("eur", "7");
Toast hhh= Toast.makeText(getApplicationContext(),kurs, Toast.LENGTH_LONG);
hhh.show();
Try This
I am trying to use a value stored in a shared preference to help style a listview and when I use this code it comes back the default value;
SharedPreferences pref = context.getSharedPreferences("Level", 0);
mCounter = pref.getInt("Level", 3);
This is the code I used to store the preference:
SharedPreferences pref = getSharedPreferences("com.komodostudios.asllessons", MODE_PRIVATE);
pref.edit().putInt("Level", 1).commit();
getSharedPreferences(String name, int mode)
where name is the name of the preferences file
getInt (String key, int defValue)
where key is the actual preference key
Do you have named your preferences and the key both "Level"? If not that is the problem.
This should work:
SharedPreferences pref = getSharedPreferences("com.komodostudios.asllessons", MODE_PRIVATE);
mCounter = pref.getInt("Level", 3);
Are you sure the preferences have been changed from their default settings? When using the SharedPreferences.Editor you must remember to call commit() to save your changes.
SharedPreferences pref = getSharedPreferences("com.komodostudios.asllessons", MODE_PRIVATE);
mCounter = pref.getInt("Level", 3);
You have to do above code..
Use below code to store & get value from prefrance. this is best way to do this.
For store data:
pref = PreferenceManager
.getDefaultSharedPreferences(getApplicationContext());
editPref = pref.edit();
editPref.putBoolean("logedin", true);
editPref.commit();
For Get Data:
pref = PreferenceManager
.getDefaultSharedPreferences(getApplicationContext());
editPref.getBoolean("logedin", false);
You need to set same shared preference name when you want to get the value.Like here you want to get your value in "Level" preference but put in different shared preference " com.komodostudios.asllessons".
So that you get the default value for "Level"
Code will be like that:
To store:
SharedPreferences pref = getSharedPreferences("com.komodostudios.asllessons", MODE_PRIVATE);
Editor editPreference=pref .edit();
editPreference.putInt("Level",2);
editPreference.commit();
To retrieve:
SharedPreferences pref = getSharedPreferences("com.komodostudios.asllessons", MODE_PRIVATE);
int mCounter = pref.getInt("Level",1);
i need to store a variable in phone memory, and later get that variable to show it.
Please, give me some information or anything to search. Thanks
static SharedPreferences settings;
static SharedPreferences.Editor editor;
settings = this.getPreferences(MODE_WORLD_WRITEABLE);
editor = settings.edit();
editor.putString("Variablenname_1", "1");
editor.commit();
if you want so get the value use:
String val = settings.getString("Variablenname_1", "0");
I think Shared Preferences is a good idea for you, read this for more information: http://developer.android.com/guide/topics/data/data-storage.html
The final result.
SharedPreferences app_preferences = PreferenceManager.getDefaultSharedPreferences(this);
String text = app_preferences.getString("name", "default");
...
SharedPreferences.Editor editor = app_preferences.edit();
editor.putString("name",name.getText().toString());
editor.commit();