0

Когда я нажимаю, чтобы редактировать мой EditText в моем списке, порядок элементов изменяется. Я думаю, проблема в адаптере, но я не знаю, как это исправить.Текстовые значения имеют изменения порядка при прокрутке списка в android

Исх .: Последний элемент отправляется на второе место.

адаптер:

public class adapterAvaliacao extends BaseAdapter { 

private LayoutInflater mInflater; 
private List<Nota> itens; 
DecimalFormat formatoNota = new DecimalFormat("#0.00"); 

public adapterAvaliacao(Context context, List<Nota> itens) { 
    this.itens = itens; 
    mInflater = LayoutInflater.from(context); 
} 

@Override 
public int getCount() { 
    return itens.size(); 
} 

@Override 
public Nota getItem(int position) { 
    return itens.get(position); 
} 

@Override 
public long getItemId(int position) { 
    return position; 
} 

@SuppressLint({ "ViewHolder", "InflateParams" }) @Override 
public View getView(int position, View convertView, ViewGroup parent) { 

    if (convertView == null) { 
     Nota item = itens.get(position); 

     convertView = mInflater.inflate(R.layout.avaliacao_adapter, null); 
     ((TextView) convertView.findViewById(R.id.lbl_nomeAtividade)).setText(item.getTitulo()); 
     if (item.isLancada()) { 
      ((EditText) convertView.findViewById(R.id.txt_notaPostada)).setText(String.valueOf(formatoNota.format(item.getNota() * 10/item.getPeso())).replace(",", ".")); 
     } 
    } else { 
     convertView.setTag(convertView.getTag()); 
     } 
    return convertView; 
} 
+0

Если вы хотите изменить элемент списка необходимо изменить значение в модели (List itens) ... –

ответ

1

Да, это нормальное поведение ListView, поэтому хранить свои ценности в ArrayList или модели, как вам нравится, так что вы можете установить, что всякий раз, когда прокрутки.

Из-за утилизации элементов списка, вы должны это сделать.

ваша строка кода SetText должно быть написано после того, как еще часть:

if (convertView == null) { 
//your stuffs like find edit text 

    } 
    else { 
      convertView.setTag(convertView.getTag()); 
     } 
    editText.setText("hello world"); 
Смежные вопросы