【发布时间】:2015-12-01 15:39:03
【问题描述】:
在我的项目中,我有一个带有星形图像的 listView。如果用户触摸星项目添加到收藏。所有代码都是正确的,但是当 listview 滚动星形图像变为不喜欢时。这是我的代码:
private class MyAdapter extends ArrayAdapter<String> {
public MyAdapter(Context context, int resource, int textViewResourceId,
String[] strings) {
super(context, resource, textViewResourceId, strings);
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View row = inflater.inflate(R.layout.custom_list_item, parent, false);
String my_string = title[position].toString();
final TextView content_title = (TextView) row.findViewById(R.id.contentitle);
final ImageView favicon = (ImageView) row.findViewById(R.id.favicon);
content_title.setText(my_string);
content_title.setTypeface(koodakfont);
if (favicon.getTag().equals("fav")) {
favicon.setImageResource(R.drawable.favicon);
favicon.setTag("fav");
}
favicon.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (favicon.getTag().equals("unfav")) {
favicon.setImageResource(R.drawable.favicon);
favicon.setTag("fav");
} else {
favicon.setImageResource(R.drawable.unfavicon);
favicon.setTag("unfav");
}
}
});
return row;
}
编辑:下面的编辑对我也不起作用。
static class ViewHolder {
ImageView favicon;
}
private class MyAdapter extends ArrayAdapter<String> {
public MyAdapter(Context context, int resource, int textViewResourceId,
String[] strings) {
super(context, resource, textViewResourceId, strings);
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View row = inflater.inflate(R.layout.custom_list_item, parent, false);
String my_string = title[position].toString();
final TextView content_title = (TextView) row.findViewById(R.id.contentitle);
final ViewHolder holder = new ViewHolder();
holder.favicon = (ImageView) row.findViewById(R.id.favicon);
content_title.setText(my_string);
content_title.setTypeface(koodakfont);
if (holder.favicon.getTag().equals("fav")) {
holder.favicon.setImageResource(R.drawable.favicon);
holder.favicon.setTag("fav");
}
holder.favicon.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (holder.favicon.getTag().equals("unfav")) {
holder.favicon.setImageResource(R.drawable.favicon);
holder.favicon.setTag("fav");
} else {
holder.favicon.setImageResource(R.drawable.unfavicon);
holder.favicon.setTag("unfav");
}
}
});
return row;
}
【问题讨论】: