我想通过用户从首选项中的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)时,我都会收到一个强制关闭。
请帮忙! 谢谢!
答案 0 :(得分:0)
您正在使用布局ID搜索视图。除了null
之外,永远不会返回任何内容。您需要搜索要更改的LinearLayout视图的ID。它将类似于R.id.?
,其中?
是您在main.xml中为视图指定的任何ID。