ListView中的Android editTextValue重复

时间:2014-05-30 05:58:28

标签: android listview android-listview

我仍然没有解决问题。

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;
}

}

2 个答案:

答案 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;