繁体   English   中英

如何在android中保存动态创建的复选框的状态

[英]how to save state of dynamically created checkbox in android

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

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;

            }

编辑:

每当您导航到当前活动到下一个活动时,请保存所选复选框的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

接着

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

首先使用SharedPreferences:

在活动的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);
}

同样的逻辑遵循for intent额外也检查checkboxid,如果它不存在不检查任何东西,如果它存在检查带有assoicated 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");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM