listview的一个奇怪问题。onItemClickListener里的参数view到底什么意思啊?上图求解

小兵比克 2011-10-26 06:08:29


问题描述:我做的效果是点击一个item后,处于选中状态,该item变色;但是,点击第一个后,在未显示的区域,也会有一个变色,下拉出来后就看到了同时两个都变色了。
我猜想:我没有理解OnItemClickListener里的view参数的含义。
代码如下:
class listListener implements OnItemClickListener {

public void onItemClick(AdapterView<?> arg0, View view, int position,
long arg3) {
//makeList(db, listview);
try {
if (!positions.contains(position)) {
positions.add(position);
view.setBackgroundColor(Color.GRAY);
} else {
positions.remove(positions.indexOf(position)); // 特别注意,仍然有问题;
view.setBackgroundColor(Color.BLACK);
}
System.out.println (view.getId());
} catch (IndexOutOfBoundsException e) {
System.out.println("出错误了,溢出错误");
}
}

}
求高手指点。
...全文
2100 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
tianming5 2014-05-30
  • 打赏
  • 举报
回复
楼主解决了吗?求教,我也遇到这样的问题
小兵比克 2011-10-29
  • 打赏
  • 举报
回复
这几天找资料,有人说这是固有的bug,只能复写baseadapter的getview方法解决,但是我按照他们的方法,似乎又不行。
Cloay 2011-10-28
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 june1991 的回复:]

引用 1 楼 ultrapro 的回复:
当前被点击的view

+1
[/Quote]
+1
手指风 2011-10-28
  • 打赏
  • 举报
回复
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返回的值
小裴同学 2011-10-28
  • 打赏
  • 举报
回复
这样不行的话,你可以换个办法。在点击事件里面把position传递给你的baseadapter类里面自己定义的一个函数然后。然后设置getview里面position项的背景,在刷新界面。就可以了。虽然复杂了点哈哈。
fishmen26 2011-10-28
  • 打赏
  • 举报
回复
我觉得是你adapter类中的getView函数写错了。
June1991 2011-10-28
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ultrapro 的回复:]
当前被点击的view
[/Quote]
+1
手指风 2011-10-28
  • 打赏
  • 举报
回复
原理都是一样的,simpcurcorAdapter也是从Adapter继承,也有上述的方法。
小兵比克 2011-10-28
  • 打赏
  • 举报
回复
我用的simpcurcorAdapter实现的。
书行 2011-10-28
  • 打赏
  • 举报
回复
你填充列表用的adapter是怎么实现的,可能这儿出错了,我认为。
xubingok 2011-10-27
  • 打赏
  • 举报
回复
这个view就是你点击的那个item.
fishmen26 2011-10-27
  • 打赏
  • 举报
回复
positions.remove(positions.indexOf(position));

干嘛用?为什么要remove掉?改背景就可以了。

view 就你点击的那个view。
搬运工木木 2011-10-27
  • 打赏
  • 举报
回复
你看一下,底下那个白色的,是不是不去碰他之前,一直都是白的,不管其他选择怎么改变
儿大不由爷 2011-10-27
  • 打赏
  • 举报
回复
当前被点击的view
小兵比克 2011-10-27
  • 打赏
  • 举报
回复
用positions来记录被选中的item的position,那个是取消选中了,当然要remove掉啊。

80,337

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧