2013-04-22 4 views
0
SharedPreferences preferences = PreferenceManager. 
getDefaultSharedPreferences(ClassName.this); 
SharedPreferences.Editor editor = preferences.edit(); 
editor.putString("Info", String.valueOf(List1.getVisibility())); 
editor.putString("Office", String.valueOf(List2.getVisibility())); 
editor.putString("Education", String.valueOf(List3.getVisibility())); 
  1. Почему List1.getVisibility() возвращает мне 0, когда видна и 8 когда скрыты?
  2. Я сохраняю правильный путь, видимость в SharedPreferences.How бы получить значения onCreate() моей деятельности. Должен ли я сделать if /else чек для каждого ListView или я могу сделать что-то лучше.
+0

Вы должны использовать 'editor.putInt()' вместо 'editor.putString()' – FoamyGuy

ответ

4

он возвращается к вам один из постоянных View.VISIBLE, View.INVISIBLE или View.GONE

8 является значение константы View.GONE, так что именно поэтому вы получаете 8, когда ваш взгляд будет установлен ушел.

Чтобы применить значения из ваших общих префов вы должны быть в состоянии сделать что-то вроде этого:

List1.setVisibility(preferences.getInt("Info", View.VISIBLE)); 

Если второй параметр GetInt() является значение по умолчанию, которое вы хотите использовать в том случае, предпочтений пока нет.

+1

Также не забывайте о 'editor.commit()' или 'editor.apply()' – andrew

+0

Должен ли я делать настройки? .commit() или editor.commit(). Предпочтения SharedPreferences = PreferenceManager.getDefaultSharedPreferences (ClassName.this); List1.setVisibility (preferences.getInt («Информация», View.VISIBLE)); – theJava

+0

'editor.commit()', и вы должны поместить его после вызова метода 'editor.putInt()' в отправленном вами коде. – FoamyGuy

Смежные вопросы