我正在使用this教程创建带有可选项目的子菜单。所以,一切工作,但我不知道如何处理选定的项目,因为我是新的序列化。这是链接到教程处理从可检查菜单中选择的项目
https://stackoverflow.com/questions/7072347/how-to-select-multiple-checkboxes-in-submenu-on-android?answertab=active#tab-top
public static final String SETTING_CHECK_BOX = "SETTING_CHECK_BOX";
private ArrayList <SettingCheckBox> settingList;
@Override
public void onCreate(Bundle savedInstanceState) {
// ...
settingList = new ArrayList <SettingCheckBox>();
settingList.add (new SettingCheckBox ("Option A"));
settingList.add (new SettingCheckBox ("Option B"));
// ... add more items
// restore any previously saved list
if (savedInstanceState != null) {
settingList = (ArrayList <SettingCheckBox>) savedInstanceState.getSerializable (SETTING_CHECK_BOX);
}
// ...
}
protected void onActivityResult (int requestCode , int resultCode , Intent data) {
if (resultCode != RESULT_OK || data == null)
return;
settingList = (ArrayList <SettingCheckBox>) data.getSerializableExtra (SETTING_CHECK_BOX);
//how can I log print the list of items that have been checked
// What should go here ? such that i can do other things after getting a list of items that were checked ?
//This is my try
Object[] mStringArray = settingList.toArray();
for(int i = 0; i < mStringArray.length ; i++){
Log.d("***Checked items*",(String)mStringArray[i]);
}
}
我觉得'data.getSerializableExtra(SETTING_CHECK_BOX);'在检索数据时很好。如果您决定继续使用它,请再次尝试我的答案(在迭代过程中添加检查器if settingList.get(i).isChecked()')。我很确定这是正确的。干杯! –
'Log.i(“***上下文菜单*”,String.valueOf(settingList.get(i).getChecked()));'给我所有的列表为true,其中检查了错误而不是。现在,尝试使用if else语句来获取描述。 – choman
是的。就像我在我的回答中我之前的评论中提到的那样,放置'if else'语句。而且我认为那时候一切都好。干杯! :D –