Проблема при работе с EditText в ListView

SQLite, Preferences, файлы, SD, Content Provider, XML, JSON
Закрыто
Milker
Сообщения: 12
Зарегистрирован: 18 апр 2012, 22:54

Проблема при работе с EditText в ListView

Сообщение Milker » 18 июн 2012, 15:50

Здравствуйте.
Столкнулся вот с какой проблемой.
Есть ListView с SimpleCursorAdapter. Вместо TextView поставил EditText. Все красиво отображается. Но вот беда, если в одной ячейке изменить текст, а потом перейти в другую ячейку, то соответственно вызывается метод Redraw (может он и по другому называется, короче перерисовка) и в отредактированной ячейке выводится старое значение. Подозреваю, что это происходит из-за того что в cursor не записалось новое значение.
Я знаю путь, по которому надо идти: перехватить потерю фокуса данной ячейкой и занести в cursor новое значение. Только вот вопрос - какое событие для этого использовать?

P.S. вполне вероятно, что это реализуется и указанием какой-то опции. Но я что-то не нашел такого.

Аватара пользователя
KamiSempai
Сообщения: 1339
Зарегистрирован: 17 фев 2012, 21:23
Откуда: Мордор

Re: Проблема при работе с EditText в ListView

Сообщение KamiSempai » 19 июн 2012, 14:55

setOnFocusChangeListener
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.

Milker
Сообщения: 12
Зарегистрирован: 18 апр 2012, 22:54

Re: Проблема при работе с EditText в ListView

Сообщение Milker » 19 июн 2012, 15:41

Отлично. Уже сделал. Но вот беда, а дальше то что делать? В сам курсор данные же не занесешь... Делать это через апдейт базы и последующий запрос для получения нового курсора тоже не выход. Я не хочу чтобы именно в этот момент менялись данные в базе, у меня для этого есть специальная кнопка, по которой все исправленные данные будут занесены в базу.
Может кто подскажет что делать? Не уже ли единственный выход это заносить данные в массивы строк и уже их передавать в адаптер?

Milker
Сообщения: 12
Зарегистрирован: 18 апр 2012, 22:54

Re: Проблема при работе с EditText в ListView

Сообщение Milker » 19 июн 2012, 23:47

К сожалению вариант с SimpleAdapter тоже не проходит. Все равно при перерисовке выводится первоначальное значение. А хотелось бы, чтобы осталось измененное. :cry:
Не уже ли нужно свой адаптер городить?

Аватара пользователя
KamiSempai
Сообщения: 1339
Зарегистрирован: 17 фев 2012, 21:23
Откуда: Мордор

Re: Проблема при работе с EditText в ListView

Сообщение KamiSempai » 20 июн 2012, 12:00

SimpleAdapter наоборот должен подходить. При потере фокуса изменяем значения в ArrayList, а при нажатии на кнопку сохранить переписываем все из ArrayList в базу.
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.

Milker
Сообщения: 12
Зарегистрирован: 18 апр 2012, 22:54

Re: Проблема при работе с EditText в ListView

Сообщение Milker » 21 июн 2012, 08:41

Упорный поиск в интернет привел к неутешительному выводу - EditText не рекомендуют использовать в ListView в режиме редактирования. При перерисовке теряется введенное значение. onFocusChange для EditText в ListView тоже не рекомендуют использовать, так как в sdk данный момент реализован с ошибками. И якобы даже в официальной документации (сам я не нашел этого) рекомендуют использовать для таких случаев TableLayout.

Закрыто