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


当前回答

只需使用myArrayList.remove(position);监听器内部:

  myListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override public void onItemClick(AdapterView<?> parent, android.view.View view, int position, long id) {
           myArrayList.remove(position);
           myArrayAdapter.notifyDataSetChanged();
        }
    });

其他回答

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

.notifyDataSetChanged list.getAdapter () ()

更新您的列表。

你可以随时调用runnable:

runOnUiThread(run);

OnCreate(),你设置你的可运行线程:

run = new Runnable() {
    public void run() {
        //reload content
        arraylist.clear();
        arraylist.addAll(db.readAll());
        adapter.notifyDataSetChanged();
        listview.invalidateViews();
        listview.refreshDrawableState();
    }
};

只需使用myArrayList.remove(position);监听器内部:

  myListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override public void onItemClick(AdapterView<?> parent, android.view.View view, int position, long id) {
           myArrayList.remove(position);
           myArrayAdapter.notifyDataSetChanged();
        }
    });

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

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

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