我有一个网格视图,我正在将要在网格视图中显示的数据传递给 gridview 适配器类。现在我想在长按一个项目时删除该项目。
我想在 onItemLongClickListener 中删除。
我有一个网格视图,我正在将要在网格视图中显示的数据传递给 gridview 适配器类。现在我想在长按一个项目时删除该项目。
我想在 onItemLongClickListener 中删除。
你需要做的是:
为您的 GridView 创建一个自定义适配器。在该适配器中,提供一种从其维护的项目列表中删除项目的方法,例如“void removeItem(int position)”
呼叫setOnItemLongClickListener
您的网格。在此方法中,您可以获取发生长按的项目的位置。从此方法中,调用该方法以删除您刚刚收到的位置的项目。
使用方法通知 GridView 数据已更改notifyDataSetchanged
。如果您希望 GridView UI 立即更新,您需要使用Handler
此请求以确保它发生在 UI 线程上。
如果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();
}
});