positions.remove(positions.indexOf(position));干嘛用?为什么要remove掉?改背景就可以了。view 就你点击的那个view。

解决方案 »

  1.   

    用positions来记录被选中的item的position,那个是取消选中了,当然要remove掉啊。
      

  2.   

    这个view就是你点击的那个item.
      

  3.   

    你填充列表用的adapter是怎么实现的,可能这儿出错了,我认为。
      

  4.   

    我觉得是你adapter类中的getView函数写错了。
      

  5.   

    这样不行的话,你可以换个办法。在点击事件里面把position传递给你的baseadapter类里面自己定义的一个函数然后。然后设置getview里面position项的背景,在刷新界面。就可以了。虽然复杂了点哈哈。
      

  6.   

    public void onItemClick(AdapterView<?> arg0, View view, int position,
    long arg3) 
    4个参数分别对应如下:
    AdapterView 当前的AdapterView对象,你这里就是ListView
    View        AdapterView所绑定的Adapter的getView方法返回的View
    int         当前被点击的条目的索引号
    long         AdapterView所绑定的Adapter的getItemId返回的值
      

  7.   

    我用的simpcurcorAdapter实现的。
      

  8.   

    原理都是一样的,simpcurcorAdapter也是从Adapter继承,也有上述的方法。
      

  9.   

    这几天找资料,有人说这是固有的bug,只能复写baseadapter的getview方法解决,但是我按照他们的方法,似乎又不行。