我有一个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的事实有关?如果需要,我可以附加适配器代码。 感谢。
答案 0 :(得分:2)
Click事件由ToggleButton使用,因此不会传递给GridView。与this post类似。
答案 1 :(得分:1)
是的,问题是 ToggleButton 默认启用了它的Clickable,因此你的ItemClickListener将无效。我们的想法是默认将ToggleButton的焦点设置为false。
假设您的ToggleButton有自定义xml,请将此行添加到其中,
android:focusable="false"
由于您有一个聚焦元素,因此会出现此问题。尝试这个简单的想法。