如何刷新一个Android列表视图后添加/删除动态数据?


当前回答

在其他选项是onWindowFocusChanged方法,但肯定它敏感,需要一些额外的编码谁感兴趣

 override fun onWindowFocusChanged(hasFocus: Boolean) {
        super.onWindowFocusChanged(hasFocus)

       // some controls needed
        programList = usersDBHelper.readProgram(model.title!!)
        notesAdapter = DailyAdapter(this, programList)
        notesAdapter.notifyDataSetChanged()
        listview_act_daily.adapter = notesAdapter
    }

其他回答

如果您正在使用SimpleCursorAdapter,请尝试在Cursor对象上调用requery()。

假设您已经向适配器传递了一个列表。 使用:

.notifyDataSetChanged list.getAdapter () ()

更新您的列表。

你也可以用这个:

myListView.invalidateViews();

如果你想在刷新时保持你的滚动位置,你可以这样做:

if (mEventListView.getAdapter() == null) {
    EventLogAdapter eventLogAdapter = new EventLogAdapter(mContext, events);
    mEventListView.setAdapter(eventLogAdapter);
} else {
    ((EventLogAdapter)mEventListView.getAdapter()).refill(events);
}

public void refill(List<EventLog> events) {
    mEvents.clear();
    mEvents.addAll(events);
    notifyDataSetChanged();
}

有关详细信息,请参阅Android ListView:刷新时保持您的滚动位置。

最简单的方法是创建一个新的Adaper,并删除旧的Adaper:

myListView.setAdapter(new MyListAdapter(...));