getCheckedItemIds()。length不返回正确的值

时间:2013-05-19 06:56:04

标签: android

我已经阅读了这个主题 whats the equivilent of getCheckedItemCount() for API level < 11?
lv.getCheckItemIds().length可以更正已检查项目的总和,
lv.getCheckedItemIds().length不能,为什么?谢谢!

private void InitListView(int pos) {
    List<String> msgList = getSMS(pos);
    ArrayAdapter<String> adapter2 = new ArrayAdapter<String>(this,
            android.R.layout.simple_list_item_multiple_choice, msgList);
    lv.setAdapter(adapter2);
    lv.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
    lv.setOnItemClickListener(new OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                long arg3) {
            SetSelectedAndTotal();
        }
    });
}

private void SetSelectedAndTotal(){
    selectedAndTotal.setText(lv.getCheckItemIds().length + "/"+lv.getCheckedItemIds().length+ "/"
            + lv.getCount());       
}

1 个答案:

答案 0 :(得分:1)

    public long[] getCheckItemIds ();

此方法已在API级别8中弃用。

使用getCheckedItemIds()代替返回已检查项目ID的集合。仅当选择模式未设置为CHOICE_MODE_NONE时,结果才有效。

<强>返回

一个新数组,其中包含列表中每个已检查项目的ID。

   public long[] getCheckedItemIds ();

返回已检查项ID的集合。仅当选择模式未设置为CHOICE_MODE_NONE且适配器具有稳定ID时,结果才有效。

(hasStableIds() == true)

<强>返回

一个新数组,其中包含列表中每个已检查项目的ID。

查看Here了解详情。

我希望这会对你有所帮助。