Определение, было ли предпочтение Android установлено ранее - PullRequest
3 голосов
/ 19 июня 2011

У меня есть приложение, которое будет иметь текст интерфейса на разных языках.Я не хочу сохранять это в strings.xml, потому что я хочу, чтобы пользователь мог изменять их (и не зависеть от локали телефона).

Я настроил предпочтение, чтобы прочитать это,По умолчанию я хочу, чтобы пользовательский интерфейс принимал значение локали, но если пользователь изменил предпочтение языка интерфейса, я хочу, чтобы он использовал это.

Есть ли способ определить, было ли ранее установлено предпочтение?Дело в том, что getInt заставляет меня установить значение по умолчанию, поэтому я не могу проверить (например), что uiLang == null, чтобы определить, было ли задано предпочтение ранее или нет.

SharedPreferences settings = getPreferences(MODE_PRIVATE);
//If uiLang has not been set before, then lets use the locale.
uiLang = settings.getInt("uiLang", 1);  //English (=1) es default
myUI = new UIText(uiLang);
myTextView.setText(myUI.title);

1 Ответ

4 голосов
/ 19 июня 2011

Вы могли бы использовать метод «содержит», чтобы проверить это:

http://developer.android.com/reference/android/content/SharedPreferences.html#contains%28java.lang.String%29

...