我仍然没有解决问题。
ListView和TextView中有editText。滚动ListView editText时会输出重复值。
发现导致ListView中的getView()问题将回收已找到的项目
在像我这样的人的堆栈溢出和头痛,我试图发布。
我只想看到并回复
然而,这并没有解决问题。
另外,在响应中inflater.inflate(R.layout.listview_item,parent,null)方法不存在
关于这个问题的详细解答,请帮我问一下
谢谢。
- 我的Android来源 -
公共类ListViewAdpter扩展了BaseAdapter {
Context context;
ArrayList<ListItemVO> itemList;
List<String> editList;
static class ViewHolder {
public TextView text;
public EditText editText;
}
public ListViewAdpter(Context context, ArrayList<ListItemVO> arr) {
this.context = context;
this.itemList = arr;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return itemList.size();
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return itemList.get(position);
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
View rowView = convertView;
if (convertView == null) {
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
rowView = inflater.inflate(R.layout.listview_item, parent, false);
ViewHolder viewHolder = new ViewHolder();
viewHolder.text = (TextView) rowView.findViewById(R.id.textView111);
viewHolder.editText = (EditText) rowView.findViewById(R.id.editText111);
rowView.setTag(viewHolder);
}
ViewHolder holder = (ViewHolder) rowView.getTag();
holder.text.setText(itemList.get(position).getName());
return rowView;
}
}
答案 0 :(得分:0)
将holder.editText.setText("");
添加到您的getView()
方法中。或者您需要的任何文字。
因为convertView
复制了包含文本,颜色等所有参数的上一个视图。
答案 1 :(得分:0)
你的if
语句结束的地方,放一个else
语句并写入
viewHolder = (ViewHolder) rowView.getTag();
还在if-else
之外声明ViewHolder类的变量,就像这个
View rowView = convertView;
ViewHolder viewHolder;
if (convertView == null) {
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
rowView = inflater.inflate(R.layout.listview_item, parent, false);
viewHolder = new ViewHolder();
viewHolder.text = (TextView) rowView.findViewById(R.id.textView111);
viewHolder.editText = (EditText) rowView.findViewById(R.id.editText111);
rowView.setTag(viewHolder);
}else{
viewHolder = (ViewHolder) rowView.getTag();
}
holder.text.setText(itemList.get(position).getName());
return rowView;