【问题标题】:Item not clicked on a GridView未在 GridView 上单击的项目
【发布时间】:2012-05-28 20:09:25
【问题描述】:

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

【问题讨论】:

    标签: android android-gridview android-event


    【解决方案1】:

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

    【讨论】:

    • 同样的问题,试过上面的方法还是不行:(把我的头发扯掉了!
    【解决方案2】:

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

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

    android:focusable="false"
    

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

    【讨论】:

      猜你喜欢
      • 2014-06-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-02
      • 1970-01-01
      相关资源
      最近更新 更多