Элементы Android listview перетасовываются при прокрутке сверху вниз?
Я должен был заполнить свое представление списка текстовыми представлениями и кнопочным управлением с помощью пользовательского адаптера.Но когда я прокручиваю список, данные внутри списка перетасовываются.
public class CustomAdapter extends BaseAdapter { LayoutInflater mInlfater; ArrayList<hashmap><string,string>> list; String rno="",name=""; public CustomAdapter(Context context,ArrayList<hashmap><string,string>> list) { mInlfater = LayoutInflater.from(context); this.list =list; } @Override public int getCount() { return list.size(); } @Override public Object getItem(int position) { return position; } @Override public long getItemId(int position) { return position; } @Override public View getView(final int position, View convertView, ViewGroup parent) { final ViewHolder holder; if(convertView ==null) { convertView = mInlfater.inflate(R.layout.attendancelistview,null); holder = new ViewHolder(); holder.b1 = (Button)convertView.findViewById(R.id.row3); holder.tv1 = (TextView)convertView.findViewById(R.id.row1); holder.tv2 = (TextView)convertView.findViewById(R.id.row2); convertView.setTag(holder); } else { holder =(ViewHolder) convertView.getTag(); } HashMap<string,string> map = list.get(position); holder.tv1.setText(map.get("Rno")); holder.tv2.setText(map.get("StudentName")); holder.b1.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { if(holder.b1.getText().equals("Present")) { holder.b1.setText("Absent"); list.get(position).put("Attendance", "Absent"); holder.b1.setTextColor(Color.RED); } else if(holder.b1.getText().equals("Absent")) { holder.b1.setText("Present"); list.get(position).put("Attendance", "Present"); holder.b1.setTextColor(Color.GREEN); } else { holder.b1.setText("Present"); list.get(position).put("Attendance", "Present"); holder.b1.setTextColor(Color.GREEN); } String rno1= String.valueOf(holder.tv1.getText()); name=String.valueOf(holder.tv2.getText()); } }); return convertView; } static class ViewHolder { Button b1; TextView tv1,tv2,tv3; } }