我正在使用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]);
}
}
答案 0 :(得分:1)
您是否从该代码中收到任何错误?如果不是,则表示您的settingList
已使用data.getSerializableExtra ( SETTING_CHECK_BOX );
的解析值正确初始化,SettingCheckBox
是SettingCheckBox
对象的列表。从您提供的链接中,包含SettingCheckBox
对象类的代码。您对对象内部数据的处理取决于您的用例。
编辑:回应评论。
如果 名称 ,则表示settingList
文字说明,您可以直接迭代for(int i = 0; i < settingList.size(); i++){
Log.d("***Checked items*", settingList.get(i).getDescription());
}
:
Select * from numberoffirms t1 where id=
(SELECT id FROM numberoffirms t2
where t1.region=t2.region
order by year desc,month desc,value desc
limit 1);
答案 1 :(得分:0)
@McAwesomville,嘿,谢谢你的帮助。工作吧!这是我提出建议后提出的代码:)干杯!
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode != RESULT_OK || data == null)
return;
settingList = (ArrayList<SettingCheckBox>) data.getSerializableExtra(SETTING_CHECK_BOX);
for (int i = 0; i <settingList.size(); i++){
if (settingList.get(i).getChecked()){
Log.d("**Checked Item**",String.valueOf(settingList.get(i).getDescription()));
}
}
}