android为listview的item里的控件设置点击事件后出现问题

HASSSSH 2016-03-09 08:46:08
listview里面放的是一些图片,想要实现的效果是点击图片跳一个activity显示大图.
我是通过intent来给那个activity来传递数据的,但是出现问题是,一旦下滑到一个新的item出现后,点击已经显示了的item出现的图片就是新的item所对应的图片,请问如何解决

List<Mood_img> list_Mood_img = mood.getList_Mood_img();
if (list_Mood_img != null && list_Mood_img.size() != 0) {
list_UrlString = new ArrayList<>();
viewHolder.item_moments_ll_img.setVisibility(View.VISIBLE);
Mood_img mood_img = list_Mood_img.get(0);
ImageLoader.getInstance().displayImage(mood_img.getUrl(), viewHolder.item_moments_img);
list_UrlString.add(mood_img.getUrl());

viewHolder.item_moments_ll_img.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent();
intent.setClass(mContext, Activity_PicDetail.class);
intent.putStringArrayListExtra("list_UrlString", list_UrlString);
mContext.startActivity(intent);
}
});
Log.i(TAG, "setOnClickListener");
}

...全文
184 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
wei220000 2016-03-09
  • 打赏
  • 举报
回复
楼主大概是因为用了ImageLoader异步加载图片,导致图片混列表混乱了,你在getView里面,list_UrlString = new ArrayList<>();那么每次加载一个新的item,就会刷新一次,那么list_UrlString 就永远只有一个数据。我想你在新activity里面是加载的list_UrlString.get(0);那肯定就是最新的了。应该在adapter的构造函数中list_UrlString = new ArrayList<>();,传递参数到新activity的时候,参数设置为list_UrlString.get(position);
ganshenml 2016-03-09
  • 打赏
  • 举报
回复
没太清楚楼主表达的意思。。。
HASSSSH 2016-03-09
  • 打赏
  • 举报
回复
引用 1 楼 qq_16689875 的回复:
虽然没太懂你的意思,不过你可以试试用listview.setOnItemClickListener方法,那个应该是可以实现你想要的效果
我不是想注册listview的item的点击事件,而是listview的item里面控件的点击事件,上面代码是我的定义的baseAdapter的getView()里面的
qq_16689875 2016-03-09
  • 打赏
  • 举报
回复
虽然没太懂你的意思,不过你可以试试用listview.setOnItemClickListener方法,那个应该是可以实现你想要的效果

80,359

社区成员

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

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