У меня странная проблема с GridView.
onItemClick (родительский элемент AdapterView, 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 изображений. В зависимости от того, какую позицию сетки выбирает пользователь, части изображения перетасовываются.
Это прекрасно работает, если выбор позиции сетки выполняется медленно. Но если пользователь продолжает очень быстро нажимать на какую-либо конкретную позицию, параметр «position» в методе onItemClick изменяется произвольно.
Предположим, что моя сетка
0 1 2
3 4 5
6 7 8
и пользователь продолжает быстрым шагом нажимать на позицию 5, иногда параметр "position" в onItemClick читает 0 или 6.
Есть идеи, в чем причина этого и какое может быть решение?