2011-12-20 2 views
0

У меня есть два разных макета. Приложение начинается с первого, но я хотел бы, чтобы пользователь изменил его на два моих второго макета, если он это предпочтет. Как я могу это сделать? СпасибоИзменить макет из предпочтений

ответ

0

Существует несколько способов: проще всего создать логическое предпочтение (или целое число, если вы хотите обрабатывать более двух макетов), и если оно установлено в true, то вы загружаете конкретный макет, и если вы не загружаете другие:

if (prefs.getBoolean("firstLayout", true)) 
    setContentView(R.layout.first); 
else 
    setContentView(R.layout.second); 
1

Используйте это вместо того, чтобы просто вытащить прив из вашего SharedPreferences

if (pref == 1){ 
setContentView(layout1) 
} else{ 
setContentView(layout2) 
} 

Или вы могли бы сделать это логическое значение, как указано

0

Просто имейте значение в SharedPreferences.Let, то пользователь userSelected.If выбрать этот макет затем положить userSelected как истинное в SharedPreferences.

Теперь, перед установкой setContentView или развёртыванием макета проверьте значение SharedPreferences.If его значение true, затем используйте (задано как setContentView или layoutInFlayout). 2-й макет, в противном случае, использует значение по умолчанию.

Вы поняли?

if (userSelected == true){ 
    setContentView(R.layout.a) 
} else{ 
setContentView(R.layout.b) 
} 
Смежные вопросы