我动态创建了多个复选框,我已经做了一些逻辑,一次只能选择一个。现在我只想保存所选复选框的状态,当我从下一个屏幕返回时应该选择它。下面我给出了复选框的代码
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;
}
答案 0 :(得分: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
然后
如果您使用的是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);
}
相同的逻辑遵循额外的也检查checkboxid,如果它不存在不检查任何东西,如果它存在检查具有assoicated id的复选框
示例:
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");