我有listview一个textview和一个edit text在每一排.如果我在一个编辑文本字段中设置一个值然后向下滚动,我将在其他一些编辑文本字段中获得该输入字段值的重复值.我该如何解决这个问题?
我的适配器类如下所示:
public class CustomAdapter extends ArrayAdapter<String> {
private Context context;
private String[] names;
ViewHolder holder;
static class ViewHolder {
public TextView text;
public EditText editText;
}
public CustomAdapter(Context context, int textViewResourceId, String[] names) {
super(context, textViewResourceId, names);
this.context = context;
this.names = names;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.row_design, parent, false);
holder = new ViewHolder();
holder.text = (TextView) convertView.findViewById(R.id.textView1);
holder.editText = (EditText) convertView.findViewById(R.id.editText1);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
String s = names[position];
holder.text.setText(s);
return convertView;
}
}
Run Code Online (Sandbox Code Playgroud)
我已经引用了这个链接: Listview重复动作,Android listview重复滚动项目
首先,这个问题的原因是Listview在滚动时重用它的视图,所以我们应该在get视图中有一个逻辑来管理它
if(convertview == null)
{
//code here
}else {
//code here
}
Run Code Online (Sandbox Code Playgroud)
,但如果您不想重复使用,那么您可以使用以下内容:
@Override
public int getItemViewType(int position) {
return position;
}
@Override
public int getViewTypeCount() {
return 500;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4501 次 |
| 最近记录: |