解决方案 »
- 开贴讨论类似QQ的跨平台网络通信的实现
- 高手快来
- 真机调试的时候找不到device
- Android下如何获得刚刚输入的字符是那个字符?
- 关于使用UDP在两个模拟器上进行消息传输
- jni 接收网络视频数据. 并解码 ,使用使用什么方式通知界面更新 ?
- 新人求教大神,关于安卓编程。
- android中用jsoup技术解析html后用listview分条显示
- android studio运行虚拟机报错,求大神帮助
- android 用什么画拓扑图
- 数据库操作的异常Cannot perform this operation because the connection pool has been close
- android串口通信
public View getView(final int position, View convertView, ViewGroup parent) {
holder = null;
if (convertView == null) {
holder = new ViewHolder();
convertView = mInflater.inflate(R.layout.class_home_item, null);
holder = new ViewHolder();
holder.home_gd_rl = (RelativeLayout) convertView
.findViewById(R.id.home_gd_rl);
holder.msg_title_rl = (RelativeLayout) convertView
.findViewById(R.id.home_item_title_rl);
holder.userIcon = (ImageView) convertView
.findViewById(R.id.home_item_user_iv);
holder.msgTime = (TextView) convertView
.findViewById(R.id.home_item_time);
holder.msgTitle = (TextView) convertView
.findViewById(R.id.home_item_title);
holder.iv_msg_type = (ImageView) convertView
.findViewById(R.id.iv_msg_type);
holder.content_ll = (LinearLayout) convertView
.findViewById(R.id.home_item_content_rl);
holder.image_rl = (RelativeLayout) convertView
.findViewById(R.id.image_rl);
holder.msgImage = (ImageView) convertView
.findViewById(R.id.home_item_content_iv);
holder.msgImage_gridview = (GridView) convertView
.findViewById(R.id.home_iv_grid);
holder.msgContent_rl = (RelativeLayout) convertView
.findViewById(R.id.content_text_rl);
holder.msgContent = (TextView) convertView
.findViewById(R.id.home_item_content);
holder.comment_rl = (RelativeLayout) convertView
.findViewById(R.id.feed_item_layout_comment);
holder.praise_rl = (RelativeLayout) convertView
.findViewById(R.id.feed_item_layout_praise);
holder.comment_nub = (TextView) convertView
.findViewById(R.id.comment_nub_tv);
holder.praise_iv = (ImageView) convertView
.findViewById(R.id.praise_iv);
holder.msg_iv_pr = (ProgressBar) convertView
.findViewById(R.id.progressBar1);
// 点赞别表
holder.praise_list_rl = (LinearLayout) convertView
.findViewById(R.id.praise_list_rl); holder.praise_first = (TextView) convertView
.findViewById(R.id.tv_praise_first);
holder.praise_second = (TextView) convertView
.findViewById(R.id.tv_praise_second);
holder.praise_third = (TextView) convertView
.findViewById(R.id.tv_praise_thrid);
holder.praise_sub1 = (TextView) convertView
.findViewById(R.id.tv_praise_text_1);
holder.praise_number = (TextView) convertView
.findViewById(R.id.tv_praise_text_2);
holder.praise_sub2 = (TextView) convertView
.findViewById(R.id.tv_praise_text_3);
convertView.setTag(holder); } else { holder = (ViewHolder) convertView.getTag();
}
msg = messageList.get(position); // 有图片的动态
if (msg.getOPImageList().size() == 0) { holder.msgImage.setVisibility(View.GONE); holder.msgImage_gridview.setVisibility(View.GONE);
holder.home_gd_rl.setVisibility(View.GONE);
holder.msg_iv_pr.setVisibility(View.GONE);
holder.image_rl.setVisibility(View.GONE); } else if (msg.getOPImageList().size() == 1) {
holder.image_rl.setVisibility(View.VISIBLE);
holder.msgImage_gridview.setVisibility(View.GONE);
holder.home_gd_rl.setVisibility(View.GONE); Image_url = new StringBuffer(AppConstant.DOWNLOAD_IMAGE_URL)
.append(msg.getOPImageList().get(0).getImageUrl())
.toString(); ImageView imageView = holder.msgImage; Bitmap cachedImage = fengle.loadDrawable(context, Image_url,
new ImageCallback() { @Override
public void imageLoaded(Bitmap imageDrawable,
String imageUrl) {
ImageView imageViewByTag = (ImageView) listview
.findViewWithTag(imageUrl);
Log.i("test",
"Drawable cachedImage = asyncImageLoader.loadDrawable( )-->");
if (imageViewByTag != null && imageDrawable != null) { // 防止图片url获取不到图片是,占位图片不见了的情况
imageViewByTag.setImageBitmap(imageDrawable);
} }
});
if (cachedImage == null) {
holder.msgImage.setImageResource(R.drawable.pic_bg);
} else {
holder.msgImage.setImageBitmap(cachedImage);
}
} else {
// 多张图片 holder.image_rl.setVisibility(View.GONE);
holder.home_gd_rl.setVisibility(View.VISIBLE);
holder.home_gd_rl.setFocusable(false);
holder.msgImage.setVisibility(View.GONE);
holder.msgImage_gridview.setVisibility(View.VISIBLE);
holder.msg_iv_pr.setVisibility(View.GONE);
holder.msgImage_gridview.setFocusable(false);
}
if (isCanClick.get(position) == false) {
holder.praise_iv.setImageDrawable(context.getResources()
.getDrawable(R.drawable.dashboard_recommand_off_default));
} else {
holder.praise_iv.setImageDrawable(context.getResources()
.getDrawable(R.drawable.dashboard_recommand_on_default));
} holder.comment_rl.setOnClickListener(new OnClickListener() { @Override
public void onClick(View v) {
Log.e("", "////////////////////");
}
}); holder.praise_rl.setOnClickListener(new OnClickListener() { @Override
public void onClick(View v) {
current_position = position;
praiseSubmit();
}
}); holder.msgTitle.setText(msg.getUserName());
StringBuffer str = new StringBuffer(msg.getActivityDate());
String create_time = str.append(" " + msg.getActivityTime()).toString();
holder.msgTime.setText(create_time);
holder.msgContent.setText(msg.getUserActivityString());
initPraiseView();
if (msg.getOPCommentsList().size() == 0) {
holder.comment_nub.setText("");
} else {
holder.comment_nub.setText(String.valueOf(msg.getOPCommentsList()
.size()));
}
holder.content_ll.setOnClickListener(new OnClickListener() { @Override
public void onClick(View v) {
}
});
return convertView;
}
这一步有重复了,但不是这个的问题
删代码的时候忘删了
我决定不是异步加载图片的问题, 我debug了一下 不管用到什么方式 回调还是AsyncTask,都会进到最后setimagebitamp这一步可是图片就是加载不出来一般在文件中的图片读取也还是挺快的呀第一次是能加载的 滑动后就怎么都加载不出来本人很菜 也不知道哪里出了问题
.findViewWithTag(imageUrl); 问题应该在这一句 你这个搜索 只会找到第一个TAG 是imageUrl的控件。 可能并不是你的要更新的控件。比如 你setTAG了 , listView 会重用item的, 在 msg.getOPImageList().size()=0 时候 还是有这个tag。
然后你find的结果就是这个contentView里面的,不是你要更新的那个ImageView。
holder.image_rl.setVisibility(View.VISIBLE);
holder.msgImage_gridview.setVisibility(View.GONE);
holder.home_gd_rl.setVisibility(View.GONE);里加上 image.setvisibility(view.visible)就行了
差了一个imageview 的显示(好坑啊)
谢谢各位了