MultiChoiceModeListener出现问题

时间:2014-03-18 19:53:08

标签: android android-listview

我在ListView上使用自定义列表适配器设置了MultiChoiceModeListener。该列表由具有单个文本视图的相对布局和指示单击能力的图标组成。

MultiChoiceModeListener设置为onItemCheckedStateChanged,如下所示:

public void onItemCheckedStateChanged(
        ActionMode mode,
        int position, 
        long id, 
        boolean checked) {
    Log.d(TAG, (checked ? "Checked" : "Un-checked"));
    if (checked) {
        listView.getChildAt(position).setBackgroundColor(
                Color.parseColor("#6633b5e5"));
    } else {
        listView.getChildAt(position).setBackgroundColor(
                Color.parseColor("#00000000"));
    }
}

现在,问题在于,当用户长按列表时,启动选择器的第一个项目不会着色。 Log.d日志"已检查"但颜色没有改变。

if(checked)测试中的其他内容会运行,但颜色不会发生变化。单击的下一个项目是彩色的,如果我取消选中并重新检查元素,颜色会正确更改。

如果我将列表适配器设置为默认值:

adapter = new ArrayAdapter<String>(
                this,
                android.R.layout.simple_list_item_1,data);
setListAdapter(adapter);
adapter.notifyDataSetChanged();

所以它似乎不适用于我的自定义布局。是什么给了什么?

0 个答案:

没有答案