У меня есть список, состоящий из TextView, EditText и Checkbox. Я хочу, чтобы состояние edittext было постоянным, поэтому, когда я изменяю текст внутри edittext, а затем прокручиваю список вверх или вниз, этот текст, который был добавлен/записан в edittext, не должен быть изменен и должен оставаться как это
Мне удалось сделать флажок постоянным, я не знаю, как сделать состояние edittext постоянным.
пожалуйста, взгляните на метод getView(), который размещен ниже, и, пожалуйста, дайте мне знать, как решить эту проблему.
получить просмотр
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
View view = null;
if (convertView == null) {
LayoutInflater layoutinflater = (LayoutInflater) context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
view = layoutinflater.inflate(R.layout.model, null);
final ViewHolder holder = new ViewHolder();
holder.tv = (TextView) view.findViewById(R.id.tv);
holder.cb = (CheckBox) view.findViewById(R.id.cb);
holder.et = (EditText) view.findViewById(R.id.et);
holder.cb.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
// TODO Auto-generated method stub
ItemDesign element = (ItemDesign) holder.cb.getTag();
element.setChecked(buttonView.isChecked());
}
});
view.setTag(holder);
holder.cb.setTag(designList.get(position));//checkbox
//edittext
ItemDesign element = (ItemDesign) holder.et.getTag();
if (element != null) {
element.setEtTxt(holder.et.getText().toString());
}
holder.et.setTag(designList.get(position));
holder.tv.setTag(designList.get(position));//textview
} else {
view = convertView;
((ViewHolder)view.getTag()).et.setTag(designList.get(position));//edittext
((ViewHolder)view.getTag()).tv.setTag(designList.get(position));//textview
((ViewHolder)view.getTag()).cb.setTag(designList.get(position));//checkbox
}
ViewHolder holder = (ViewHolder) view.getTag();
holder.tv.setText(designList.get(position).getTxt()); //textview
holder.cb.setChecked(designList.get(position).isChecked());//checkbox
//edittext
String etTxt = holder.et.getText().toString();
designList.get(position).setEtTxt(etTxt);
holder.et.setText(designList.get(position).getEtTxt());
return view;
}
private class ViewHolder {
TextView tv;
CheckBox cb;
EditText et;
}