Android: SharedPreferences, как удалить второй параметр из действия (если ничего не найдено в sharedPreferences) - PullRequest
0 голосов
/ 17 марта 2020

Итак, у меня есть эта строка кода

SharedPreferences sharedPref = getApplicationContext().getSharedPreferences(PREFS_NAME, 0);

У меня есть метка, которая загружает сохраненное (в общих настройках) имя. Когда приложение запускается, если общие настройки не находят ничего для отображения, оно возвращает второй параметр, что означает ноль (0). Как мне установить, чтобы ничего не показывалось вместо нуля?

PS: я пробовал null или "", но android studio не позволит мне написать это.

Ответы [ 2 ]

1 голос
/ 17 марта 2020

Как насчет возврата пустой строки, как показано ниже

 String myPref =  sharedPreferences.getString(YOUR_PREFERENCE, "");
0 голосов
/ 18 марта 2020

An integer, boolean, float и любой другой тип примитива не может быть null. Таким образом, если SharedPreferences не содержит Object (например, String), его нельзя установить равным нулю, несмотря ни на что. Однако, если SharedPreferences содержит Object, то вы можете использовать троичный оператор Java (? и :), чтобы установить значение в null:

String myPref = getApplicationContext().getSharedPreferences(PREFS_NAME, "").equals("") ? null : getApplicationContext().getSharedPreferences(PREFS_NAME, "");

или

String myPref = getApplicationContext().getSharedPreferences(PREFS_NAME, "");
if (myPref.equals(""))
    myPref = null;

Я не понимаю, зачем вам конкретно значение null, обычно в integer значение -1 представляет ошибку. Если в вашем случае каждое число (включая -1) должно считаться действительным вводом, используйте String, который содержит число, когда оно является действительным (а затем проанализируйте его как integer) и содержит значение null, когда недействительным.

...