Using shared preferences between actions

I am trying to share a common preference between the two actions of my project, but for some reason I cannot transfer data.

I have Activity A that reads general preferences and Activity B that reads and also edits general preferences.

Here is the code that I use to write down general preferences in Activity B:

SharedPreferences sharedPref = getSharedPreferences("myPrefs", Context.
    MODE_WORLD_WRITEABLE);
SharedPreferences.Editor editor = sharedPref.edit();
editor.putString("theme", "black");
editor.commit();

and for reading in action A:

SharedPreferences sharedPref = getSharedPreferences("myPrefs", Context.
    MODE_WORLD_WRITEABLE);
String theme=sharedPref.getString("theme","blue");

I tried to use different modes, and it worked in Activity B in PRIVATE mode, but it was not shared with activity A. For some reason, I think I have two different common preferences (one name) for two different actions. How to use the same general preference for both activities?

+4
3

, :

MODE_WORLD_WRITEABLE MODE_WORLD_READABLE

 SharedPreferences sharedPref = getSharedPreferences("myPrefs",Context.MODE_WORLD_READABLE);
  String theme=sharedPref.getString("theme","blue");
0
// try this way
1. define SharedPreferences variable in SmartApplication class  also define read and write method SharedPreferences

private SharedPreferences sharedPreferences;

 @Override
 public void onCreate() {
        super.onCreate();

 sharedPreferences = getSharedPreferences("yourAppName", MODE_PRIVATE);

 } 

public void writeSharedPreferences(String key, String value) {
        SharedPreferences.Editor editor = readSharedPreferences().edit();
        editor.putString(key, value);
        editor.commit();
}
// write Shared Preferences 
public void writeSharedPreferences(String key, boolean value) {
        SharedPreferences.Editor editor = readSharedPreferences().edit();
        editor.putBoolean(key, value);
        editor.commit();
}
// write Shared Preferences 
public void writeSharedPreferences(String key, float value) {
        SharedPreferences.Editor editor = readSharedPreferences().edit();
        editor.putFloat(key, value);
        editor.commit();
}

public void writeSharedPreferences(String key, int value) {
        SharedPreferences.Editor editor = readSharedPreferences().edit();
        editor.putInt(key, value);
        editor.commit();
}

// write Shared Preferences 
public void writeSharedPreferences(String key, long value) {
        SharedPreferences.Editor editor = readSharedPreferences().edit();
        editor.putLong(key, value);
        editor.commit();
}

// get Shared Preferences 
public SharedPreferences readSharedPreferences() {
        return sharedPreferences;
}
0
source

Source: https://habr.com/ru/post/1529719/


All Articles