在自定义适配器继承ArrayAdapter
如何实现listview动态更新数据呢?
更换数据源,再刷新适配器不就可以!
可以尝试下楼上的说法。
更贴心数据后调用myAdapter.notifyDataSetChanged();
Activity中修改数据源,修改后直接myAdapter.notifyDataSetChanged();
在自定义适配器继承ArrayAdapter后,Activity中修改数据源,修改后直接myAdapter.notifyDataSetChanged();也可以试试调用myAdapter.notifyDataSetChanged();
修改数据源后,用继承自BaseAdapter的适配器调用notifyDataSetChanged()方法。
找到要更新的行,然后进行更新。
protected void updatePatientImage(int _id) {
// 得到第一个可显示控件的位置,
if (mListView == null || mListView.getCount() == 0)
return;
int pos1 = mListView.getFirstVisiblePosition();
int pos2 = mListView.getLastVisiblePosition();
int num_of_visible_view = pos2 - pos1 + 1;
for (int i = 0; i < num_of_visible_view; i++) {
// 得到要更新的item的view
View view = mListView.getChildAt(i);
// 从view中取得holder
MyListItem holder = (MyListItem) view.getTag();
if (holder != null && holder.getPatientId() == _id) {
holder.setImage(_id);
break;
}
}
}
```java
更新适配器里的数据源 然后刷新适配器 adapter.notitychange
你的问题是 动态和更新,
首先说 动态, 一般实现方式是周期性检查你的检测量.为了减少周期轮询开销,从而产生了事件机制.
所以,实现动态,可以采用轮询,或事件通知方式
然后说 更新,无论你要更新UI或是其他,都会有相应的API,使用合适的API即可.
所以,实现更新,需要你认真的去查找和阅读相应的API文档.
多少一点,据我所知,貌似是由于性能原因,在当前的android开发API中ListView已被RecyclerView取代了.
如果不清楚,建议去google官网看看开发者文档
实时更新?在你数据更新的时候后面调用myAdapter.notifyDataSetChanged();,就好了
更新适配器里的数据源 然后刷新适配器 adapter.notitychange
真搞不懂你为什么是继承ArrayAdapter 而不是继承BaseAdapter,BaseAdapter 的**notifyDataSetChanged**