Получить общее значение общих настроек Android в действии / нормальном классе

Я сделал общую активность предпочтений, которая хранит пользовательские настройки, теперь я хочу получить значения в действии или нормальный java class.please, чтобы предоставить решение или пример, который я уже пробовал этот код, но не смог.

public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); SharedPreferences channel=this.getSharedPreferences(strFile, Context.MODE_PRIVATE); strChannel=channel.getString(keyChannel,"Default").toString(); Toast.makeText(getApplicationContext(), strChannel, Toast.LENGTH_LONG).show(); } 

В этом коде strfile например. SharedPreference ActivitySharedPreference Activity из значений, которые нужно извлечь, а keyChannel – это ключ, который является таким же в SharedPreference Activity .

Просьба предоставить решение.

Если у вас есть SharedPreferenceActivity, с помощью которого вы сохранили свои значения

 SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); String imgSett = prefs.getString(keyChannel, ""); 

Если значение сохраняется в SharedPreference в Activity, то это правильный способ его сохранения.

 SharedPreferences shared = getSharedPreferences(PREF_NAME, MODE_PRIVATE); SharedPreferences.Editor editor = shared.edit(); editor.putString(keyChannel, email); editor.commit();// commit is important here. 

И именно так вы можете получить значения.

 SharedPreferences shared = getSharedPreferences(PREF_NAME, MODE_PRIVATE); String channel = (shared.getString(keyChannel, "")); 

Также имейте в виду, что вы можете сделать это и в классе non-Activity, но единственным условием является передача контекста Activity. Используйте этот контекст для получения SharedPreferences.

 mContext.getSharedPreferences(PREF_NAME, MODE_PRIVATE); 

Я попробовал этот код, чтобы получить общие настройки из активности и не смог заставить его работать:

  SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this); sharedPreferences.getAll(); Log.d("AddNewRecord", "getAll: " + sharedPreferences.getAll()); Log.d("AddNewRecord", "Size: " + sharedPreferences.getAll().size()); 

Каждый раз, когда я пытался, мои настройки возвращались 0, хотя у меня есть 14 настроек, сохраненных в активности предпочтений. Наконец я нашел ответ. Я добавил это к настройкам в разделе onCreate.

getPreferenceManager () setSharedPreferencesName ( "defaultPreferences").

После того, как я добавил это заявление, мои сохраненные настройки вернулись так, как ожидалось. Я надеюсь, что это поможет кому-то другому, кто может испытать ту же самую проблему, что и я.

Это процедура, которая кажется мне самой простой:

 SharedPreferences sp = getSharedPreferences("MySharedPrefs", MODE_PRIVATE); SharedPreferences.Editor e = sp.edit(); if (sp.getString("sharedString", null).equals("true") || sp.getString("sharedString", null) == null) { e.putString("sharedString", "false").commit(); // Do something } else { // Do something else }