0

我正在动态创建多个复选框,并且我已经做了一些逻辑来一次只选择一个。现在我只想保存选中复选框的状态,当我从下一个屏幕返回时,它应该被选中。下面我给出了复选框的代码

cb.setOnCheckedChangeListener(new OnCheckedChangeListener() {

        @Override
        public void onCheckedChanged(CompoundButton buttonView,
                boolean isChecked) {


            if (isChecked) {                    
                if (hash.size() > 0) {
                    hash.get("1").setChecked(false);
                }                                       

                hash.put("1", buttonView);
                selAnyone = true;
            } else {
                hash.clear();
                selAnyone = false;

            }
4

1 回答 1

2

编辑:

每当您导航到当前活动到下一个活动时,请像这样保存所选复选框的 id

  SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
      SharedPreferences.Editor editor = preferences.edit();
      editor.putString("checkboxid","1");
      editor.commit();

或简单地通过 Intent 发送

yourintent.putExtra("checkboxid","1"); // selected checkbox id

接着

如果您使用的是意图而不是 sharedpreferences,则在导航回当前屏幕时添加相同的额外内容。

首先使用 SharedPreferences:

在您的 Activity 的 onCreate 中检查 pref 是否包含复选框 id

SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
  String name = preferences.getString("Name",null);  // if the  preference doesn't exist it returns null

if(name!=null)
{
 int checkedid=Integer.parseInt(name);
checkbox[checkid].setChecked(true);
}

意图的相同逻辑也检查 checkboxid ,如果不存在则不检查任何内容,如果存在则检查带有关联 id 的复选框


使用SharedPreferences

例子:

  SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
  SharedPreferences.Editor editor = preferences.edit();
  editor.putString("checkboxid","1");
  editor.commit();

变成这样

SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
  String name = preferences.getString("Name","checkboxid");
于 2013-03-24T12:30:43.000 回答