可以动态更改ListView的适配器吗?

Jef*_*rod 31 android listview listadapter android-arrayadapter

相反,创建多个活动,我想改变ArrayAdapter的的ListView需要.我没有在API中看到有关提及是否可以setAdapter()多次调用的问题.

更具体地说,我想开始一项有活动的活动ListView.在这个例子中,ListViewlistView.setAdapter(this)from,比如a 来初始化CategoryArrayAdapter.

然后用户选择一个类别.在不启动新活动的情况下,代码将为其设置新的适配器ListView.新的适配器,说ItemArrayAdapter电话listView.setAdapter(this).

是否有人有成功完成此操作的经验或知道为什么不应该这样做的具体原因?

yor*_*rkw 31

我没有在API中看到是否可以多次调用setAdapter().

简单的答案是肯定的,之前我做过类似的事情.

这就是为什么在API中存在和提供适配器的原因.每个列表项的实际内容(Model)及其呈现方式(View)是在android.widget.Adapter中隔离并实现的,而不是直接绑定到android.widget.AdapterView.只要正确实现了适配器,只需调用setAdapter()方法即可交换/更改绑定到ListView的实际底层适配器.