项目未单击GridView

时间:2012-05-28 20:09:25

标签: android android-gridview android-event

我有一个GridView,其项目是ToggleButtons,我为项目点击定义了一个事件监听器,但是当我点击它们时没有任何反应。这是听众:

    paintActionsGrid.setOnItemClickListener(new AdapterView.OnItemClickListener() 
    {
        public void onItemClick(AdapterView<?> parent,View view,int position,
                long id)
        { 
            ((ToggleButton)view).setChecked(true);
            paintBoardView.setPaintAction(paintActions[position]); 
        }
    });

我在监听器中设置了一个断点,但是没有达到,这意味着监听器根本没有被调用! 有人可以告诉我有什么问题吗?是否与物品是ToggleButtons的事实有关?如果需要,我可以附加适配器代码。 感谢。

2 个答案:

答案 0 :(得分:2)

Click事件由ToggleButton使用,因此不会传递给GridView。与this post类似。

答案 1 :(得分:1)

是的,问题是 ToggleButton 默认启用了它的Clickable,因此你的ItemClickListener将无效。我们的想法是默认将ToggleButton的焦点设置为false。

假设您的ToggleButton有自定义xml,请将此行添加到其中,

android:focusable="false"

由于您有一个聚焦元素,因此会出现此问题。尝试这个简单的想法。