在ListView中设置所选节点的背景

时间:2012-11-27 05:39:32

标签: android android-listview

我有一个水平ListView,它以文件夹的形式显示一些项目。单击这些项可打开该节点的子项。我想设置所选节点的背景。我可以在Adapter类中使用此代码执行此操作:

public void bindView(View view, Context context, Cursor cursor) {
    this.cursorPosition = cursor.getPosition();
    if (this.cursorPosition == selectedPosition) {
        holder.title.setBackgroundResource(R.color.toc_selected);
    }
}

此处selectedPosition是所选项目的位置,我将其设置在不同的位置。

如果在单击项目后向左/向右滑动项目,此代码将失败。在ListView显示8个项目时,cursor.getPosition()的值为0,1,2,...,7。如果我们滑动ListView,第9个元素的值cursor.getPosition()将为0,元素10th的值为1,依此类推。因此,如果我们选择第一个节点,那么它将在列表视图中选择第1个节点和第9个节点。在滑动视图的情况下更新位置。此外,如果我们选择第9项,那么第1项也将被选中,因为第1和第9个节点的getPosition是相同的,即0。

有没有办法摆脱这种情况?

0 个答案:

没有答案