处理可检查菜单中的所选项目

时间:2016-05-30 02:51:04

标签: java android submenu

我正在使用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]);
         }

        }

2 个答案:

答案 0 :(得分:1)

您是否从该代码中收到任何错误?如果不是,则表示您的settingList已使用data.getSerializableExtra ( SETTING_CHECK_BOX );的解析值正确初始化,SettingCheckBoxSettingCheckBox对象的列表。从您提供的链接中,包含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()));
            }
        }


    }