在对由RecyclerView适配器处理的数组进行突变以更新视图并反映所做的更改时,调用notifyDataSetChanged()
或notifyItemChanged()
是常识。但是,我启动了一个示例应用程序,在同一块中调用.setAdapter()
之后立即将项目添加到数组中时,都不会调用任何示例应用程序,并且视图会更新!当我尝试通过按钮的onClickListener
或从后台线程添加项目时,都不会发生此行为(都需要notifyDataSetChanged
才能更新视图)。
这是怎么回事?
在同一块中调用.setAdapter()
之后,是否不应该立即在列表中添加项目?
即
notifyDataSetChanged()
答案 0 :(得分:0)
如果要将ArrayList
传递到Adapter
,并且要在onCreate
中添加元素,那将是在应用绘制第一帧之前。
有一段时间,您可以添加元素,因为适配器尚未布置项目。
在您的onClick
内,即onCreate
完成之后,这意味着adapter
已经布置好了。
您可以尝试将add("c");
移至onPostCreate
或onResume
,并且可能会看到与onClick
类似的结果。