Как сохранить и получить SharedPreferences в разных видах деятельности? - PullRequest
0 голосов
/ 25 апреля 2018

У меня были проблемы с пониманием того, как сохранить и прочитать SharedPreferences. Я пытаюсь сохранить четыре отдельных SharedPreferences, но так как я не мог понять, как это сделать, я решил попробовать с простой строкой.

В этом коде я пытаюсь создать и сохранить строку в SharedPreferences

        Button enrollNewStudent = (Button) findViewById(R.id.enrollStudentButton) ;

    enrollNewStudent.setOnClickListener(new View.OnClickListener(){
        @Override
        public void onClick(View view){
            SharedPreferences prefs = getSharedPreferences(getString(R.string.testing), MODE_PRIVATE);
            SharedPreferences.Editor editor = getSharedPreferences(getString(R.string.testing), MODE_PRIVATE).edit();
            editor.putString("name", "Dave");
            editor.commit();
            startActivity(new Intent(MainActivity.this, AddNewStudent.class));
        }
    });

И в этой следующей части я пытаюсь прочитать SharedPreferences и установить TextView на него во втором упражнении.

        Context context = this;
    SharedPreferences sharedPref = getSharedPreferences(getString(R.string.testing),MODE_PRIVATE);
    String toPutInTextView = sharedPref.getString(getString(R.string.testing), null);

    TextView textView = findViewById(R.id.exampleTextView);
    textView.setText(toPutInTextView);

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

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

1 Ответ

0 голосов
/ 25 апреля 2018

Проблема в том, что sharedPref.getString(getString(R.string.testing), null) тянет, используя в качестве ключа строку getString(R.string.testing). Тем не менее, ключ, который вы использовали при вызове "putString()", был «имя». Поэтому вам нужно использовать «имя» в качестве ключа для вашего getString() звонка.

Попробуйте:

String toPutInTextView = sharedPref.getString("name", "<default_value>");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...