SharedPreferences Возвращает нулевое значение в другом классе - PullRequest
0 голосов
/ 01 ноября 2018

Заранее спасибо ..!

Я занимаюсь разработкой приложения для Android. В моем приложении я хочу сохранить идентификатор в общих настройках

 SharedPreferences myPrefs = getSharedPreferences("myPrefs", MODE_PRIVATE);
                    SharedPreferences.Editor editor = myPrefs.edit();
                    editor.putString("MEM1", getTrackID);
                    editor.commit();

Исходя из этого идентификатора, я хочу перенаправить домашнюю страницу в моем приложении, это также отлично работает ..

 SharedPreferences myPrefs = this.getSharedPreferences("myPrefs", MODE_PRIVATE);
        String username = myPrefs.getString("MEM1","");
 if(username.equalsIgnoreCase("")||username.length()==0) {
                        Intent sessionIntent = new Intent(MainActivity.this,Dashboard.class);
                        startActivity(sessionIntent);
                        finish();
                    }

Теперь я вхожу в класс Dashboard. В этом классе значение общего предпочтения возвращается как ноль. Я хочу получить тот идентификатор, который находится в общем предпочтении для дальнейшего процесса моего приложения. кто-нибудь может мне помочь, пожалуйста?

   SharedPreferences myPrefs = getSharedPreferences("myPrefs", MODE_PRIVATE);
                        String username = myPrefs.getString("MEM1","");
                        Log.e(TAG, "TRackNoShared: " + username);

1 Ответ

0 голосов
/ 01 ноября 2018

Я обычно создаю класс, расширяющий Application для глобальной конфигурации. В классе я добавляю ниже

public class MyApplication extends Application {

      private static MyApplication sInstance;

     public static MyApplication getInstance() {
          return sInstance;
      }

      public static Context getAppContext() {
          return sInstance.getApplicationContext();
      }

 public static void saveToPreferences(String preferenceName, String preferenceValue) {
    SharedPreferences sharedPreferences = getAppContext().getSharedPreferences(PREF_KEY, Context.MODE_PRIVATE);
    SharedPreferences.Editor editor = sharedPreferences.edit();
    editor.putString(preferenceName, preferenceValue);
    editor.apply();
         }

   public static String readFromPreferences(String preferenceName, int defaultValue) {
    SharedPreferences sharedPreferences = getAppContext().getSharedPreferences(PREF_KEY, Context.MODE_PRIVATE);
    return sharedPreferences.getString(preferenceName, defaultValue);
     }
}

А затем в своем манифесте добавьте <application android:name=".MyApplication" затем из любого места я просто звоню MyApplication.saveToPreferences(KEY, VALUE), а для извлечения просто набираю MyApplication.readFromPreference(KEY, Default Value). Хорошо, что вы можете перегружать методы и иметь их для целочисленных и логических типов и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...