从首选项更改布局背景

时间:2011-07-14 05:22:05

标签: android preferences

我想通过用户从首选项中的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);
    }

每次从ListPreference中选择田纳西州(其值为73)时,我都会收到一个强制关闭。

请帮忙! 谢谢!

1 个答案:

答案 0 :(得分:0)

您正在使用布局ID搜索视图。除了null之外,永远不会返回任何内容。您需要搜索要更改的LinearLayout视图的ID。它将类似于R.id.?,其中?是您在main.xml中为视图指定的任何ID。