Android保存并检查,单选按钮

时间:2014-03-01 17:35:43

标签: java android preferences

抱歉我的英语不好。

我有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?我怎么能把它做得最好?

1 个答案:

答案 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);
     }
}

只需在适用的地方调用此功能。