【问题标题】:android multichoice listview error Exceptionandroid多选listview错误异常
【发布时间】:2014-08-10 08:56:06
【问题描述】:

为了选择最喜欢的联系人,我在列表视图中加载所有联系人并声明我的适配器,如下所示:

ArrayAdapter<String> cnct_List_Adapter =new ArrayAdapter<String>(getActivity(),android.R.layout.simple_list_item_multiple_choice,info);

为了显示结果,我使用以下代码:

            try 
            {
                SparseBooleanArray a = LvPopupContacts.getCheckedItemPositions();
                String my_sel_items="";
                for(int i = 0; i < LvPopupContacts.getCount() ; i++)
                {
                    if (a.valueAt(i))
                    {
                     /*
                        Long val = lView.getAdapter().getItemId(a.keyAt(i));
                        Log.v("MyData", "index=" + val.toString()
                             + "item value="+lView.getAdapter().getItem(i));
                        list.add(lView.getAdapter().getItemId((a.keyAt(i))));
                     */

                        my_sel_items = my_sel_items + "," 
                            + (String) LvPopupContacts.getAdapter().getItem(i);
                    }
                }
                Toast.makeText(getActivity(),String.valueOf(a.size()), 0).show();
                Log.v("Contacts :" ,my_sel_items);
            } catch (Exception e) {
                   Log.v("e Error" ,e.toString());
            }

现在,当我在emulator 中使用它时,它可以在rightly 中工作,但是当它在Device 中测试时,返回e Exception

Exception: java.lang.ArrayindexOutOfBoundsException length=13;index=13

记住,我的设备有大约 220 个联系人。

【问题讨论】:

  • 完整发布你的日志猫
  • 不幸的是,在设备中运行应用程序时,eclipse 没有创建日志! - 我不知道为什么!

标签: android android-listview arraylist android-arrayadapter multichoiceitems


【解决方案1】:

你的错误在这里:

   for(int i = 0; i < LvPopupContacts.getCount() ; i++)

"a" 数组包含所有选中的项目,但您遍历所有 LvPopupContacts,因此将其更改为

  for(int i = 0; i < a.size() ; i++)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-25
    • 2011-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多