У меня есть длинный прокручиваемый список элементов EditText, созданный SimpleCursorAdapter и предварительно заполненный значениями из базы данных SQLite.
Я делаю это по:
cursor = db.rawQuery("SELECT _id, criterion, localweight, globalweight FROM " + dbTableName + " ORDER BY criterion", null);
startManagingCursor(cursor);
mAdapter = new SimpleCursorAdapter(this, R.layout.weight_edit_items, cursor, new String[]{"criterion","localweight","globalweight"}, new int[]{R.id.criterion_edit, R.id.localweight_edit, R.id.globalweight_edit});
this.setListAdapter(mAdapter);
Список прокрутки состоит из нескольких экранов эмулятора. Элементы отображаются ОК - их прокрутка показывает, что каждый из них имеет правильное значение из базы данных.
Я могу внести изменения в любой из EditTexts, и новый текст будет принят и отображен в поле.
Но ... если я затем прокручиваю список достаточно далеко, чтобы убрать отредактированный элемент с экрана, когда я прокручиваю назад, чтобы посмотреть на него снова, его значение вернулось к тому, что было до того, как я внес изменения, т.е. мои правки были потеряны.
Пытаясь разобраться в этом, я сделал getText, чтобы посмотреть, что находится в EditText, после того как я сделал свои правки (и перед прокруткой), и getText возвращает оригинальный текст, даже хотя EditText отображает мой новый текст. Кажется, что EditText только принял мои правки поверхностно, и они не были привязаны к EditText, то есть они упали при прокрутке с экрана.
Может кто-нибудь сказать мне, что здесь происходит и что мне нужно сделать, чтобы заставить EditText сохранить свои правки?
Спасибо
Ian