1

我有一个 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 的事实有关吗?如果需要,我可以附上适配器代码。谢谢。

4

2 回答 2

2

单击事件由 ToggleButton 使用,因此不会传递给 GridView。类似于这个帖子

于 2012-05-28T20:13:01.527 回答
1

是的,问题是ToggleButton默认启用了可点击功能,因此您的 ItemClickListener 将不起作用。这个想法是默认情况下将 ToggleButton 的焦点设置为 false。

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

android:focusable="false"

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

于 2012-05-29T04:17:14.013 回答