【发布时间】:2013-07-30 07:17:21
【问题描述】:
我的ListView 有问题。我在几个项目中使用它们,每个项目都会出现错误。
在一种情况下,每个项目都有一个独特的图像,在另一种情况下,有些项目包含粗体文本,有些则没有。
当我滚动时,图像/粗体文本不在正确的位置,当我在某个点(以防 b)再次快速上下滚动时,几乎所有项目都是粗体。
我能找到的唯一帖子是this one,但它并没有解决问题。
这是我的自定义适配器:
private class MyAdapter extends BaseAdapter {
private List<Object> obj;
private LayoutInflater inflater;
public MyAdapter(Context context, List<Object> obj_list) {
this.obj_list = obj_list;
this.inflater = LayoutInflater.from(context);
}
public int getCount(){
return this.obj_list.size();
}
public Object getItem(int position){
return this.obj_list.get(position);
}
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
if(convertView == null){
convertView = inflater.inflate(R.layout.my_row_layout, null);
holder = new ViewHolder();
holder.item_one = (TextView)convertView.findViewById(R.id.txtItemOne);
holder.item_two = (TextView)convertView.findViewById(R.id.txtItemTwo);
convertView.setTag(holder);
}else{
holder = (ViewHolder) convertView.getTag();
}
Object objectItem = getItem(position);
//here I set the boldness
if(condition) {
holder.item_one.setTypeface(null, Typeface.BOLD);
}
holder.item_one.setText(objectItem .getItemOne());
holder.item_two.setText(objectItem .getItemTwo());
return convertView;
}
class ViewHolder {
TextView hItemOne;
TextView hItemTwo;
}
}
有人知道我可能做错了什么吗?或者至少遇到过同样的问题?
谢谢!
【问题讨论】:
-
移动“ holder.item_one.setText(objectItem .getItemOne());”在 if 条件内。
-
为什么?无论如何我都想设置它...
-
嗯,ListView 适配器会回收视图位置,因此当您滚动位置时会重新分配。
-
hm...我是这么认为的...但是我怎样才能让一些项目加粗一些不加粗呢?
标签: java android android-listview android-adapter