Это поможет вам
``
private class EfficientAdapter extends BaseAdapter {
private LayoutInflater mInflater;
private String[] attitude_names;
public String[] attitude_values;
private String name;
public static HashMap<Integer,String> myList=new HashMap<Integer,String>();
public EfficientAdapter(Context context) {
mInflater = LayoutInflater.from(context);
attitude_names = context.getResources().getStringArray(R.array.COMP_ATTITUDE_NAME);
attitude_values = new String[attitude_names.length];
}
// initialize myList
for(int i=0;i<attitude_names.length;i++)
{
myList.put(i,"");
}
public Object getItem(int position) {
return position;
}
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
final ViewHolder holder;
if (convertView == null) {
convertView = mInflater.inflate(R.layout.addcomp_attitude_row, null);
holder = new ViewHolder();
holder.Attitude_Name = (TextView) convertView.findViewById(R.id.addcomp_att_name);
holder.Attitude_Value = (EditText) convertView.findViewById(R.id.addcomp_att_value);
holder.Attitude_Value.addTextChangedListener(new TextWatcher()
{
public void afterTextChanged(Editable edt)
{
myList.put(pos,s.toString.trim());
attitude_values[holder.ref] = edt.toString();
}
public void beforeTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {}
public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {
//attitude_values[ref] = Attitude_Value.getText().toString();
}
});
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.ref=position;
holder.Attitude_Name.setText(attitude_names[position]);
holder.Attitude_Value.setHint(attitude_names[position]);
holder.Attitude_Value.setText(myList.get(position));
return convertView;
}
class ViewHolder {
TextView Attitude_Name;
EditText Attitude_Value;
int ref;
}
@Override
public int getCount() {
return attitude_names.length;
}
}
Здесь я включил объект HashMap, который будет следить за тем, что EditText содержит значение. И когда вы прокручиваете просмотр списка, онбудет визуализирован снова путем вызова его метода getView.
В этом коде, когда вы впервые загрузите просмотр списка, весь ваш текст редактирования будет без текста. Как только вы введете какой-то текст, он будет отмечен в myList.So, когдаВы снова визуализируете список, ваш текст будет заблокирован.