【发布时间】:2017-12-14 17:28:59
【问题描述】:
我对 GridView 有一个奇怪的问题。
onItemClick(AdapterView parent, View v, int position, long id)
方法有时会给出错误的位置。 我的代码:
public class ImageAdapter extends BaseAdapter {
......
}
gridview = (GridView) findViewById(R.id.gridview);
image_adapter = new ImageAdapter(this);
gridview.setAdapter(image_adapter);
gridview.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
Log.e(TAG, "position = "+position);
}
}
我的 gridView 是 3X3 网格,图像适配器有 9 个图像。根据用户选择的网格位置,图像片段会被打乱。
如果选择网格位置的速度很慢,这可以正常工作。但是,如果用户在任何特定位置上继续快速点击,onItemClick 方法中的“位置”参数会被任意更改。 假设我的网格是
0 1 2
3 4 5
6 7 8
并且用户不断快速点击位置 5,有时 onItemClick 中的“位置”参数会读取 0 或 6。
知道这是什么原因,有什么解决办法吗?
【问题讨论】: