抱歉我的英语不好。
我有2个班级,
1 MainActivity.java
(标准)
2 settings.java
(用于设置)
我有一个RadioGroup
,其中包含5 Radiobuttons
。
我保存了单选按钮的状态,如下所示(在settings.java类中):
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
SharedPreferences settings = getSharedPreferences("status", 0);
SharedPreferences.Editor editor = settings.edit();
editor.putBoolean("blue", blue.isChecked());
editor.putBoolean("orange", orange.isChecked());
editor.putBoolean("purple", purple.isChecked());
editor.putBoolean("grey", grey.isChecked());
editor.putBoolean("green", green.isChecked());
editor.commit();
}
public void loadSettings () {
SharedPreferences settings = getSharedPreferences("status", 0);
royalBlue.setChecked(settings.getBoolean("blue", false));
orange.setChecked(settings.getBoolean("orange", false));
purple.setChecked(settings.getBoolean("purple", false));
titan.setChecked(settings.getBoolean("grey", false));
eighties.setChecked(settings.getBoolean("green", false));
}
成功保存单选按钮的状态。即使重新启动应用程序,也会保存单选按钮。
我想现在选择RadioButton
橙色(或其他)时,ImageButton
会改变我的形象。我想在MainActivity
。
我在主要活动中尝试过,但我总是得到NullPoinException
:
主要代码...
private settings load = new settings();
...
...
public void change (){
if (load.orange.isChecked()){
imBuOn.setImageResource(R.drawable.orange);
}
正如我所说,遗憾的是我无法访问单选按钮的状态。
我是否需要使用PreferenceManager
?我怎么能把它做得最好?
答案 0 :(得分:1)
您无需创建settings
类的实例并获取checkBox
的值。相反,您应该使用loadSettings
方法中给出的相同代码,因为您只是访问SharedPreferences
文件。
因此,在您的MainActivity中,只需运行此
private void checkAndSetImage()
{
SharedPreferences settings = getSharedPreferences("status", 0);
if(settings.getBoolean("orange", false))
{
imBuOn.setImageResource(R.drawable.orange);
}
}
只需在适用的地方调用此功能。