Gridview可以同时具有onclick和onitemclick监听器吗?

时间:2011-03-28 15:38:11

标签: android user-interface

我有一个使用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设置两个适配器吗?

1 个答案:

答案 0 :(得分:0)

假设您的GridView占据整个屏幕,一个解决方案是在FrameLayout下放置另一个View,它也会填满整个屏幕(例如,没有指定android:src的ImageView)。如果用户单击未被网格项占据的区域,则触摸事件将遍历到基础视图,您可以根据需要在GridView中单击该视图。只是稍微hacky,但你的情况并不常见。