我有一个使用ImageAdapter的gridview。目前,可以单击并长按gridview中的每个单独图像。我正在尝试添加功能,以便人们也可以单击gridview本身,也就是说ImageAdapter未填充的空间。这是我迄今为止尝试的代码:
mGridViewWords.setAdapter(new AACButtonAdapter(this, button_size, TouchButtonAdapter.TOPIC_WORDS, mDB));
mGridViewWords.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
AddWordButtonAction((TouchButton) v);
}
});
mGridViewWords.setOnClickListener(new SelectViewListener());
mGridViewWords.setOnItemLongClickListener(new OnItemLongClickListener() {
public boolean onItemLongClick(AdapterView<?> parent_view, View button, int position, long id) {
removeButtonFromView((GridView)parent_view, position, mCurrentWordCategory);
return true;
}
});
但是,在尝试使用.setOnClickListener()
时,我在Logcat中收到此错误:
java.lang.RuntimeException: Don't call setOnClickListener for an AdapterView. You probably want setOnItemClickListener instead
有没有人就获得我追求的功能的不同方式提出建议?可以为gridview设置两个适配器吗?
答案 0 :(得分:0)
假设您的GridView占据整个屏幕,一个解决方案是在FrameLayout下放置另一个View,它也会填满整个屏幕(例如,没有指定android:src的ImageView)。如果用户单击未被网格项占据的区域,则触摸事件将遍历到基础视图,您可以根据需要在GridView中单击该视图。只是稍微hacky,但你的情况并不常见。