2011-10-10 62 views
0

enter image description here我非常感谢这个非常棒的网站。 在这里,我正在扩展我的Add/Remove Items to Android ListView后又一个情况。我创建一个ListView ListView listView = new ListView(context);在我的活动和我的代码MyCustomAdapter扩展BaseAdaptor.setting这个自定义适配器到我创建的listView.setAdapter(myCustomAdpObj)对象如上。在MyCustomAdapter类的getView(..)方法我使用我的自定义布局类,因为MyCustomView扩展LinearLayout和MyCustomView包含像TextView ImageView等GUI组件。它意味着我有三个不同的类MyActivity,MyCustomAdapter和MyCustomView.Now在MyActivity中我想访问像ImageView这样的特定元素,并且想要更改其背景或src image.any帮助?更改Android ListView组件

+0

这是否正确总结你的问题里面:“我怎样才能改变每个列表项在我的ListView基于绑定到每个列表中的数据个人观点项目?” –

+0

@丹S首先是我动态地添加视图到我的ListView.now我想在运行时更改一些项目(如ImageView背景或TextView文本等)已添加项目? – aftab

+0

你的getView()是动态添加和删除视图还是只创建你的列表项?这一切都与你的活页夹的复杂程度有关。 –

回答

0

@丹S感谢您的回答,但处理程序其工作正常。当我们调用Adapter.notifyDataSetChanged();时,需要将hanlder更新GUI。它的意思是如果notifyDataSetChanged ListView控件没有更新然后把处理后的方法调用此方法这个notifyDataSetChanged

0

它看起来像你需要移动到SimpleAdapter或SimpleCursorAdapter(取决于您的后端数据)。从那里使用ViewBinder,以便您可以根据数据自定义列表项目的外观。这也是您将手动绑定数据的位置ViewBinder.setViewValue此方法将在任何自动绑定发生之前调用,因此您可以返回false以允许自动绑定发生。 (自动绑定只适用于ImageView和TextView)

+0

这意味着当我使用扩展BaseAdapter的自定义适配器时,无法更改ImageView图像? – aftab

+0

可以使用'getView'来更改内容,但这样做更麻烦。 –

+0

现在我能够使用此代码添加新的视图到现有的ListView MyChatListBean newChatBean = chatSessionArrayList.get(index); newChatBean.setMsgStatus(statustype); \t \t chatSessionArrayList.set(index,newChatBean); ((BaseAdapter)listView.getAdapter())。notifyDataSetChanged();我还附加了一个图像与我的主post.now问题是未来notifyDataSetChanged()不显示新添加的图像,但当我隐藏和显示软键盘通过点击我的聊天屏幕上的EditText,如上图所示。它看起来ListView不刷新或者其他?如何刷新ListView? – aftab