当前位置: 代码迷 >> Android >> listview 点赞 有关问题
  详细解决方案

listview 点赞 有关问题

热度:35   发布时间:2016-04-28 03:35:31.0
listview 点赞 问题
[size=24px][size=18px]最近做一个小功能遇到这么一个问题,listview 与 baseadapter结合使用

关于点赞的的时候 图片重复问题,比如:我在第1个item 点赞然后 心型换成了红色,但是以后每隔几个item就会出现一个红色的心,响应事件是对的,不知道哪出的问题,请大神解答
[/size][/size]
------解决思路----------------------
private HashMap<Integer, Boolean> isCanClick;
private int current_position = -1;

getview里
if (isCanClick.get(position) == false) {
空白的红心
} else {
点过赞的红心
}
点击事件
holder.praise_rl.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {

isCanClick.put(current_position, true);
}
});

------解决思路----------------------
代码还给你...

@Override
public View getView(int position, View convertView, ViewGroup parent) {

final OutPara1301Item item = (OutPara1301Item) getItem(position);
final ViewHolder viewHolder;
if (convertView == null) {
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.fragment3_items, parent,
false);
viewHolder = new ViewHolder();
viewHolder.content = (TextView) convertView
.findViewById(R.id.content);
viewHolder.like_count = (TextView) convertView
.findViewById(R.id.isLikeNum);
viewHolder.comment_count = (TextView) convertView
.findViewById(R.id.messageNum);
viewHolder.name = (TextView) convertView.findViewById(R.id.name);
viewHolder.like = (ImageView) convertView.findViewById(R.id.like);
viewHolder.message = (ImageView) convertView
.findViewById(R.id.message);
viewHolder.pid = (TextView) convertView.findViewById(R.id.pid);
convertView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) convertView.getTag();
}
// 设置item的背景色 #00ff00
String color = "#" + item.bg_color;
convertView.setBackgroundColor(Color.parseColor(color));
viewHolder.content.setText(item.post_content);
viewHolder.like_count.setText(StringUtils
.getDisplayNum(item.like_count));
viewHolder.comment_count.setText(StringUtils
.getDisplayNum(item.comment_count));
viewHolder.name.setText(StringUtils.convertFroType(item.from_type));
viewHolder.pid.setText(item.pid + "");
if ("".equals(viewHolder.like_count.getText())){
 viewHolder.like.setImageResource(R.drawable.like_default);
}else{
viewHolder.like.setImageResource(R.drawable.like);
}

viewHolder.like.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {

int num = 0;
if (!"".equals(viewHolder.like_count.getText()))
num = new Integer(viewHolder.like_count.getText()
.toString());
num++;
((ImageView) v).setImageResource(R.drawable.like);
viewHolder.like_count.setText(num + "");
Toast.makeText(context, "是否点赞" + num, Toast.LENGTH_SHORT)
.show();
}
});
return convertView;
}
  相关解决方案