2016-04-26 4 views
-3

Я использую общие настройки в одном действии для хранения user_id и имени. Я хочу взять user_id из другого действия. Я могу получить значение от первой активности, но я не могу получить ее из другого вида деятельности. Какие изменения необходимо сделать для этого?Как получить значение общих предпочтений от другого действия?

Определение

SharedPreferences sharedPreferences = LoginActivityMerchant.this.getSharedPreferences(config.SHARED_PREF_NAME, Context.MODE_PRIVATE); 

          //Creating editor to store values to shared preferences 
          SharedPreferences.Editor editor = sharedPreferences.edit(); 

          //Adding values to editor 
          editor.putBoolean(config.LOGGEDIN_SHARED_PREF, true); 
          editor.putString(config.SHARED_PREF_NAME, user); 
          editor.putString("UserId",response.toString()); 
          config.KEY_USERNAME = user; 

          //Saving values to editor 
          editor.commit(); 

Вызов

final SharedPreferences SharedPreferences= getSharedPreferences("LoginActivityMerchant",MODE_PRIVATE); 
    String Userid=SharedPreferences.getString("UserId", ""); 
+0

Просто перечитайте значение предпочтения. Он не меняет действия. –

+0

Как получить значение? – proversion

+0

То, как вы поживаете. Но я бы выбрал другое имя для созданного объекта. то есть: 'final SharedPreferences prefs ...', а затем 'prefs.getString (...' –

ответ

-1

To редактировать данные из общего предпочтения

SharedPreferences.Editor editor = getPreferences(MODE_PRIVATE).edit(); 
editor.putString("text", mSaved.getText().toString()); 
editor.putInt("selection-start", mSaved.getSelectionStart()); 
editor.putInt("selection-end", mSaved.getSelectionEnd()); 
editor.apply(); 

Для извлечения данных из общего предпочтения

SharedPreferences prefs = getPreferences(MODE_PRIVATE); 

    int selectionStart = prefs.getInt("selection-start", -1); 
    int selectionEnd = prefs.getInt("selection-end", -1); 

Выше простой пример, применить это в коде :)

Надеется, что это помогает :)

+0

'getPreferences' работает только с текущим контекстом Activity, не так ли? Он не разделяет между действиями? –

+0

@ cricket_007 да действительно, он закрыт для вызывающей активности –

1

Преференции вы используете, очень вероятно, различные.

Убедитесь, что у вас есть те же значения для первого параметра в этом вызове

getSharedPreferences(config.SHARED_PREF_NAME, Context.MODE_PRIVATE); 

и

getSharedPreferences("LoginActivityMerchant",MODE_PRIVATE); 

это будет работать только если config.SHARED_PREF_NAME равен "LoginActivityMerchant", и я предполагаю, что это Безразлично «т.

+0

Спасибо ... Это была моя ошибка – proversion

+0

@proversion Я вижу, что вы никогда не принимали ответа. Способ, которым мы работаем, - это то, что если вы получите ответ, который решает вашу проблему, вы принимаете его щелкнув галочку рядом с ответом. Это указывает на то, что ваша проблема решена и может быть использована как знак признания людям, которые помогают вам –

0
SharedPreferences mSharedPreferences; 
    mSharedPreferences = PreferenceManager.getDefaultSharedPreferences(this); 

    //get string 
    String value = mSharedPreferences.getString("VAL", "Null") 

Вы можете открыть SharedPreferences где-нибудь в приложении

Смежные вопросы