Изменить макет фона из настроек - PullRequest
0 голосов
/ 14 июля 2011

Я хочу изменить фон макета через то, что пользователь выбирает из ListPreference в настройках. У меня есть небольшие проблемы с этим. Я установил настройки в моем Java:

protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);

    addPreferencesFromResource(R.xml.prefs);
}

}

и иметь массив, настроенный для ListPreference.

Здесь я получаю строку из настроек, чтобы изменить фон на основе того, что выбрано:

SharedPreferences SP = PreferenceManager
    .getDefaultSharedPreferences(getBaseContext());

    String strFavTeam = SP.getString("keyFavTeam", "0");

    LinearLayout linearLayout = (LinearLayout) this.findViewById(R.layout.main);

    if(strFavTeam.equals("0")){
        linearLayout.setBackgroundResource(R.drawable.first_screen);
    }
    if(strFavTeam.equals("73")){
        linearLayout.setBackgroundResource(R.drawable.tennessee_screen);
    }
    if(strFavTeam.equals("67")){
        linearLayout.setBackgroundResource(R.drawable.georgia_screen);
    }

Я получаю силу закрытия каждый раз, когда выбираю Теннесси (значение которого равно 73) из ListPreference.

Пожалуйста, помогите! Спасибо !!

1 Ответ

0 голосов
/ 14 июля 2011

Вы ищете представление, используя идентификатор макета. Это никогда не вернет ничего, кроме null. Вам нужно найти идентификатор представления LinearLayout, которое вы хотите изменить. Это будет что-то вроде R.id.?, где ? - это любой идентификатор, который вы присвоили представлению в main.xml.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...