У меня есть listview, состоящий из TextView, EditText и Checkbox. Я хочу, чтобы состояние edittext было постоянным, так что, когда я изменяю текст внутри edittext, а затем прокручиваю список вверх или вниз, текст, который был добавлен/записан в edittext, не должен изменяться и должен оставаться как этокак сделать значение EditText постоянным в прокручиваемом списке
Мне удалось установить флажок, я не знаю, как сделать состояние edittext постоянным.
, пожалуйста, посмотрите на GetView() Митос она размещена ниже и, пожалуйста, дайте мне знать, как решить эту проблему
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;
}
Вы должны поддерживать значение в массиве designList. и в методе getView вам нужно проверить и установить текст или установить ... –
@SamirMangroliya ok, в моем списке дизайна есть получатели и сеттеры для каждого вида «TextView, Checkbox, Edittext», и я использую эти getters и сеттеры в getView как опубликованные выше, и мне удалось сделать флажок стойким ... но мой вопрос в том, как сделать значение Edittext постоянным – user2121