проблема при совместном использовании текста в Android с помощью SharedPreferences - PullRequest
0 голосов
/ 20 сентября 2011

Я перехожу по этой ссылке , чтобы использовать SharedPreferences. Я пытаюсь применить в моем приложении, но значение Shared возвращает нулевое значение

Здесь мой код Чтобы назначить общую переменную

                           SharedPreferences sharedPreferences = getSharedPreferences("pref",Activity.MODE_WORLD_READABLE);
                            SharedPreferences.Editor editor= sharedPreferences.edit();
                            String l="hello";
                            editor.putString(l,"imagepath");
                            editor.commit();

здесь код для доступа к общей переменной

   SharedPreferences myPrefs = this.getSharedPreferences("myPrefs", MODE_WORLD_READABLE);
    String prefName = myPrefs.getString("imagepath",null);
    Toast.makeText(getBaseContext(),"create banner"+prefName,Toast.LENGTH_LONG).show();

здесь prefName возвращает нулевое значение. Он не может использоваться совместно.

Ответы [ 4 ]

0 голосов
/ 20 сентября 2011

Вы написали «myPrefs» в (SharedPreferences myPrefs = this.getSharedPreferences («myPrefs», MODE_WORLD_READABLE);)

Измените его следующим образом (SharedPreferences myPrefs = this.getSharedPreferences ("pref", MODE_WORLD_READABLE);)

здесь у меня есть изменение "myPrefs" в ("myPrefs", MODE_WORLD_READABLE) на "pref".

Теперь вы самый подходящий ("pref", MODE_WORLD_READABLE)

0 голосов
/ 20 сентября 2011

Переключите это:

editor.putString("imagepath", l);

также вы захотите изменить возможное возвращаемое значение «null» на более приемлемое возвращаемое значение ошибки, возможно, 0 или -1.

    String prefName = myPrefs.getString("imagepath","0");

Источник Документация Android для редактора :

abstract SharedPreferences.Editor    putString(String key, String value)
//Set a String value in the preferences editor, to be written back once commit() or apply() are called.
0 голосов
/ 20 сентября 2011

Имя предпочтения "hello", а не "imagepath".

String prefName = myPrefs.getString("hello", null);

И я думаю, что лучше использовать getString("hello", "").Таким образом, prefName никогда не будет null.

0 голосов
/ 20 сентября 2011

вы используете неправильный ключ.

получите строку, подобную этой:

String prefName = myPrefs.getString("hello",null);

вы также используете два разных имени sharedPreference:

SharedPreferences sharedPreferences = getSharedPreferences("pref",Activity.MODE_WORLD_READABLE);

SharedPreferences myPrefs = this.getSharedPreferences("myPrefs", MODE_WORLD_READABLE);

Пожалуйста, убедитесь, чтоВы пишете и читаете в одном и том же SharedPreference.

Ваш код для записи в SharedPreference должен выглядеть следующим образом:

SharedPreferences sharedPreferences = getSharedPreferences("pref",0);
SharedPreferences.Editor edito r= sharedPreferences.edit();
String l="hello";
editor.putString(l,"imagepath");
editor.commit();

Для чтения из SharedPreference должен выглядеть примерно так:

SharedPreferences myPrefs = this.getSharedPreferences("pref", 0);
String prefName = myPrefs.getString("hello",null);
Toast.makeText(getBaseContext(),"create banner"+prefName,Toast.LENGTH_LONG).show();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...