2011-10-10 7 views
0

enter image description here Я очень благодарен за этот очень хороший сайт. Здесь я расширяю сообщение Add/Remove Items to Android ListView с еще одной ситуацией. Я создаю listview как ListView listView = новый ListView (контекст); в моей деятельности, и я код MyCustomAdapter, который расширяет BaseAdaptor.seting этого настраиваемого адаптера в моем объекте listView.setAdapter (myCustomAdpObj), который я создал, как указано выше. В методе getView (..) класса MyCustomAdapter я использую свой собственный класс Layout, поскольку MyCustomView extends LinearLayout и MyCustomView содержат компоненты графического интерфейса, такие как TextView ImageView и т. Д. Это означает, что у меня есть три разных класса: MyActivity, MyCustomAdapter и MyCustomView.Now в MyActivity. Я хочу получить доступ к определенному элементу, например ImageView, и изменить его фон или src image.any help?изменить элемент списка ListView

+0

Это правильно суммирует ваш вопрос: «Как я могу изменить отдельные представления в каждом элементе списка в моем ListView на основе данных, привязанных к каждому списку? пункт?" –

+0

@Dan S first yes Я динамически добавляю представления в свой ListView.now Я хочу изменить некоторые элементы (например, фон ImageView или текст TextView и т. Д.) Во время выполнения уже добавленных элементов? – aftab

+0

Является ли ваш getView() динамическим добавлением и удалением представлений или просто созданием элементов списка? Все это связано с тем, насколько сложным будет ваше связующее. –

ответ

0

@Dan S благодарит за ваш ответ, но с обработчиком его работоспособности. Необходимо, чтобы hanlder обновил GUI, когда мы вызываем Adapter.notifyDataSetChanged() ;. Это означает, что если notifyDataSetChanged ListView не обновляется, а затем помещать метод почтового обработчика внутри этого метода, вызывайте это notifyDataSetChanged

0

Похоже, вам нужно перейти на SimpleAdapter или SimpleCursorAdapter (в зависимости от ваших внутренних данных). Оттуда используйте ViewBinder, чтобы вы могли настроить внешний вид элементов списка на основе данных. Здесь также вы привяжете данные вручную с помощью ViewBinder.setViewValue, этот метод будет вызван до того, как произойдет автоматическое связывание, чтобы вы могли вернуть false, чтобы разрешить автоматическое связывание. (Автоматическое связывание работает только с ImageView и TextView.)

+0

это означает, что невозможно изменить изображение ImageView, когда я использую свой пользовательский адаптер, расширяющий BaseAdapter? – aftab

+0

Можно использовать 'getView' для изменения содержимого, но сделать его более громоздким. –

+0

теперь я могу добавить новый вид в существующий ListView, используя этот код MyChatListBean newChatBean = chatSessionArrayList.get (index); newChatBean.setMsgStatus (statustype); \t \t chatSessionArrayList.set (index, newChatBean); \t ((BaseAdapter) listView.getAdapter()). NotifyDataSetChanged(); Я также прикрепляю изображение с моим главным сообщением. Теперь проблема возникает notifyDataSetChanged() не показывает недавно добавленное изображение, но когда я скрываю и показываю мягкую клавиатуру, нажимая на EditText экрана чата, как показано на приведенном выше изображении .Its ищет ListView не освежающий или еще? Как обновить ListView? – aftab

Смежные вопросы