Android Listview修改所有项目
修改listview的所有子元素(不仅仅是可见元素)的正确方法是什么。 我有一个默认设置为Visibility gone的图像。我希望在用户单击一个按钮(针对所有项目)后使其可见Android Listview修改所有项目,android,listview,Android,Listview,修改listview的所有子元素(不仅仅是可见元素)的正确方法是什么。 我有一个默认设置为Visibility gone的图像。我希望在用户单击一个按钮(针对所有项目)后使其可见 谢谢 您可能应该在ListAdapter的getView()中根据某些字段值设置图像可见性。单击按钮后,您将更改此字段值,然后调用ListAdapter.notifyDataSetChanged,因此列表视图将更新-getView,然后调用,图像将更改,因为您的字段值已更改 修改listview的所有子元素(不仅仅是可
谢谢 您可能应该在
ListAdapter
的getView()
中根据某些字段值设置图像可见性。单击按钮后,您将更改此字段值,然后调用ListAdapter.notifyDataSetChanged
,因此列表视图将更新-getView
,然后调用,图像将更改,因为您的字段值已更改
修改listview的所有子元素(不仅仅是可见元素)的正确方法是什么
关于列表视图
需要了解的一点是,并非所有列表项都是在任何给定时间生成(膨胀/填充)的
例如,假设您的列表适配器
中有1000项,但列表视图
一次只能显示10项。创建所有1000个列表项将是对资源(例如内存)的严重浪费
相反,只创建10个可见项目,每次从屏幕顶部或底部滚动一个项目时,消失的项目将作为convertView
传递到适配器的
方法中,重新循环
getView (int position, View convertView, ViewGroup parent)
要执行您要求的操作,您应该扩展您希望使用的适配器
类型,并覆盖getView
方法。在该方法中,检查convertView
是否为null
。如果是,请膨胀您自己的列表项布局实例。如果不为空,则重新使用UI元素(TextView
,ImageView
等)
要使所有ImageView
元素可见,请使用全局Boolean
,如showImageView
,按下按钮即可切换。然后在getView
中使用它来决定是否设置ImageView
的可见性
请参见适配器的getView()
中的,您可以抓取ImageView并将其可见性设置为gone:
ImageView iv = (ImageView)convertView.findViewById(R.id.image_view);
iv.setVisibility(buttonClicked ? View.GONE : View.VISIBLE);
然后,当用户单击按钮时,设置buttonClicked=true
,并调用notifyDataSetChanged()
刷新列表视图