0

我有一个网格视图,我正在将要在网格视图中显示的数据传递给 gridview 适配器类。现在我想在长按一个项目时删除该项目。

我想在 onItemLongClickListener 中删除。

4

2 回答 2

1

你需要做的是:

  1. 为您的 GridView 创建一个自定义适配器。在该适配器中,提供一种从其维护的项目列表中删除项目的方法,例如“void removeItem(int position)”

  2. 呼叫setOnItemLongClickListener您的网格。在此方法中,您可以获取发生长按的项目的位置。从此方法中,调用该方法以删除您刚刚收到的位置的项目。

  3. 使用方法通知 GridView 数据已更改notifyDataSetchanged。如果您希望 GridView UI 立即更新,您需要使用Handler此请求以确保它发生在 UI 线程上。

于 2012-05-09T11:21:13.153 回答
1

如果mThumbIdsList 是所有 gridview 项目 id 的整数数组,那么您可以尝试此代码。这可能会对您有所帮助。

final ImageAdapter adapter = new ImageAdapter(this);
gridview.setAdapter(adapter);

gridview.onItemLongClickListener(new OnItemClickListener() {
    public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
        adapter.mThumbIdsList.remove(position);
        adapter.notifyDataSetChanged();
    }
});
于 2012-05-09T11:31:10.327 回答