Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Android - How do I get sharedpreferences from another activity?

In my app there is a button (activity1). When user clicks it, I want no sound in the game. I thought I should do this by using sharedpreferences in activity1 in the onClick method of the button:

SharedPreferences.Editor editor = mPrefs.edit(); editor.putString("sound","1"); editor.commit(); 

The sound and the game starts in another activity (activity2). I need to read the set sharedpreferences there, but I don't know how to do it.

Thanks

Edit

I have left this line out:

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(Activity1.this); 

Based on your help in the Activity2.class I read the preferences like this:

SharedPreferences myPrefs = getSharedPreferences("Activity1", MODE_PRIVATE);  //Activity1.class String ifsound = myPrefs.getString("sound","");                       if (ifsound.equals("1"))  {      Toast.makeText(Activity1.this, "1", Toast.LENGTH_LONG).show();  }  else  {       Toast.makeText(Activity1.this, "0", Toast.LENGTH_LONG).show();  } 
  1. In Activity1.class i click on the button to set the "sound" to "1".
  2. I click on another btn that opens Activity2.class where I always get always "0" in the Toast msg.
like image 539
erdomester Avatar asked May 31 '11 10:05

erdomester


People also ask

How do I pass data from one activity to another using SharedPreferences?

How to pass data from one activity to another in Android using shared preferences? Step 1 − Create a new project in Android Studio, go to File ⇒ New Project and fill all required details to create a new project. Step 2 − Add the following code to res/layout/activity_main. xml.

How can I get shared preference data?

To retrieve values from shared preferences: SharedPreferences sp = PreferenceManager. getDefaultSharedPreferences(this); String name = sp. getString("Name", ""); // Second parameter is the default value.

How save and retrieve data using SharedPreferences in Android?

Shared Preferences allow you to save and retrieve data in the form of key,value pair. In order to use shared preferences, you have to call a method getSharedPreferences() that returns a SharedPreference instance pointing to the file that contains the values of preferences.

Is SQLite better than SharedPreferences?

To give an example, SharedPreferences are useful for storing user preferences, where there are just a handful of variables that need storing. SQLite on the other hand would be better for storing data where there is a large set of items, such as song titles in a music library which need to be searched through.


1 Answers

Use the following functions to add shared preferences and to fetch the saved values from all activities.

public static void setDefaults(String key, String value, Context context) {     SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context);     SharedPreferences.Editor editor = preferences.edit();     editor.putString(key, value);     editor.apply(); // or editor.commit() in case you want to write data instantly }  public static String getDefaults(String key, Context context) {     SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context);     return preferences.getString(key, null); } 
like image 60
includeMe Avatar answered Oct 08 '22 13:10

includeMe