• 《阿古顿巴》藏语版在藏语卫视首播 2019-09-06
  • 晋中市“三同步”推动互联网治理创新 2019-08-27
  • 法媒:研究称美国人常用药物或增加抑郁风险 2019-08-27
  • 宝贝是地名,你能想到这么浪漫的地名在哪儿吗? 2019-08-15
  • 何树山副省长到方圆机电调研指导工作 2019-08-15
  • 云南快乐十分果今天的:关于android listView

    来源:本网整理

    彩票双色球历史开奖结果 www.s9h6.com 在listView列表中有一个ImageView  和TextView等 在适配器给imageView设置点击事件 当点击imagView是图片变成蓝色

    问题是我点击imageView以后当前点击的变蓝了 但是 后面没隔一个就变蓝了  why ?。。。?!

    adapter 里面放个数据容器,图片样式资源存数据容器里,getview的时候去取数据容器数据更新页面,每次做操作都是改变数据容器,例如ArrayList和HashMap的组合作为数据容器,listview的item view是复用的,数据可以每次改变,改变之后,调用通知数据改变接口就ok了。
    =======================其他用户的看法====================
    没代码 说什么?

    ===========================================
    public View getView(int position, View convertView, ViewGroup parent) { 
    
    
    // TODO Auto-generated method stub 
    ListItemView listItemView = null; 
    if (convertView == null) { 
    convertView = listContainer.inflate(itemViewResource, null); 
    listItemView = new ListItemView(); 
    listItemView.showDate = (TextView) convertView.findViewById(R.id.show_date); 
    listItemView.title = (TextView) convertView.findViewById(R.id.home_title); 
    listItemView.likeImageview = (ImageView) convertView.findViewById(R.id.like_imageview); 
    listItemView.picture = (ImageView) convertView.findViewById(R.id.picture); 
    listItemView.author = (TextView) convertView.findViewById(R.id.author); 
    listItemView.praiseCount = (TextView) convertView.findViewById(R.id.praise_count); 
    // 设置控件集合到convertView 
    convertView.setTag(listItemView); 
    } 
    else { 
    listItemView = (ListItemView) convertView.getTag(); 
    } 
    Party party = listItems.get(position); 
    listItemView.showDate.setText(party.getPartDate()); 
    listItemView.title.setText(party.getPartyTitle()); 
    listItemView.author.setText(party.getPartyOrganizer()); 
    listItemView.picture.setOnClickListener(imageOnClickListener); 
    listItemView.praiseCount.setText(String.valueOf(party.getCommentCount() + party.getLikeCount())); 
    Log.i("TAGA", "getThumbnail_img=" + party.getThumbnail_IMG()); 
    ImageManager2.from(context).displayImage(listItemView.picture, StringUtils.filterUrl(party.getThumbnail_IMG()), R.drawable.p1984553217, 250, 
    250); 
    listItemView.likeImageview.setOnClickListener(new View.OnClickListener() { 
    
    @Override 
    public void onClick(View v) { 
    
    // TODO Auto-generated method stub 
    if (v instanceof ImageView) { 
    final ImageView img = (ImageView) v; 
    final Party party = (Party) v.getTag(); 
    // TODO Auto-generated method stub 
    final Handler handler = new Handler() { 
    
    
    public void handleMessage(Message msg) { 
    
    
    if (msg.what == 1) { 
    Result res = (Result) msg.obj; 
    Log.i("TAG", "flag=" + res.getFlag()); 
    if (res.getFlag() == 0) { 
    Toast.makeText(context, res.getError(), Toast.LENGTH_LONG).show(); 
    } 
    else if (res.getFlag() == 1) { 
    Toast.makeText(context, res.getSuccess(), Toast.LENGTH_LONG).show(); 
    img.setImageResource(R.drawable.praise_ico_x); 
    // count.setTextColor(context.getResources().getColor(R.color.deep_blue)); 
    } 
    } 
    }; 
    }; 
    new Thread() { 
    
    
    public void run() { 
    
    
    Message msg = new Message(); 
    try { 
    Result result = ac.getLikeResult(party.getPartyID(), "281"); 
    msg.what = 1; 
    msg.obj = result; 
    } 
    catch (AppException e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
    e.printStackTrace(); 
    msg.what = -1; 
    msg.obj = e; 
    } 
    handler.sendMessage(msg); 
    
    
    }; 
    }.start(); 
    } 
    } 
    }); 
    listItemView.likeImageview.setTag(party); 
    return convertView; 
    }

    ===========================================
    去掉缓存
    ===========================================
    去掉 tag 后 可不可以了?

    ===========================================

    这个问题貌似源自于代码,如果 @scjunjun 在适配器的 getView 中去定制 ImageView 的 OnClickListener,所使用的 getView 第一个参数最好设置成 final。

    比如:

    public View getView(final int position, View view, ViewGroup parent) {
    	// [Neo] ...
    	xx.setOnClickListener(new OnClickListener() {
    		@Override
    		public void onClick(View v) {
    			list.get(position);
    			// [Neo] ...
    		}
    	}
    }
    ps: 直接在 getView 内部写变量,或者使用成员变量存储这个 position 就会出现与题目描述类似的问题
    ===========================================

  • 本文相关:
  • android listView
  • 使用android usb host与arduino设备通信,接收不到消息
  • mysql中使用了limit查询,如何能够获得查询的数量
  • bootstrap怎样用啊
  • nginx调用lua??楸ù?/a>
  • STM32 2.4G无线通讯问题
  • 图像处理控件ImagXpress关于TIFF文件删除问题
  • URL传值和form表单提交的区别和原理
  • PHP动态页面如何实现浏览器缓存?
  • 一个关于zk的问题
  • 免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 彩票双色球历史开奖结果 - 频道导航
    Copyright © 2017 彩票双色球历史开奖结果 www.s9h6.com All Rights Reserved
  • 《阿古顿巴》藏语版在藏语卫视首播 2019-09-06
  • 晋中市“三同步”推动互联网治理创新 2019-08-27
  • 法媒:研究称美国人常用药物或增加抑郁风险 2019-08-27
  • 宝贝是地名,你能想到这么浪漫的地名在哪儿吗? 2019-08-15
  • 何树山副省长到方圆机电调研指导工作 2019-08-15
  • 新疆时时彩五星走时图 3d定位公式 彩乐乐江苏快三 南国早报特码资料 新11选5中奖规则 时时彩9码平刷稳赚方案 15选5一等奖一般多少钱 百宝彩票陕西快乐十分 88波足球即时比分8bo 幸运分分彩app 足彩胜负彩18087期推荐 云南体育彩票走势图 p3试机号走势图手机彩宝网 天津十一选五爱乐彩 11选5彩票走势图