【问题标题】:Android : ListView with Buttons -> OnItemClick do nothingAndroid:带按钮的 ListView -> OnItemClick 什么都不做
【发布时间】:2011-09-10 15:17:21
【问题描述】:

我的问题来自 ListView。如果没有按钮,ListView 的 .setOnItemClickListener 可以正常工作。 (开始一个活动)

当我将按钮添加到 ListView 的项目中时,按钮是可点击的,但项目不可点击...

我尝试使用myListView.setItemCanFocus(true);,但它不起作用...

【问题讨论】:

  • 我无法回答您的问题。当您在 setOnItemClickListener 时添加 onCLickListener 和项目时,按钮是可点击的。你能更准确地解释一下你在哪里添加了什么吗?
  • 在列表视图中有按钮听起来很奇怪。您是否考虑过使用上下文菜单?
  • @Stuti:我看不懂你的文章。你能写“你”而不是“你”吗?我们应该在这里保持语言干净。谢谢
  • @WarrenFaith:非常抱歉。其实我已经很习惯了。但我会牢记在心,并尽我所能避免它。谢谢。
  • @Stuti 另一件事-如果您接受答案,您将提高您的评分,那么您可以做更多。每接受一个答案,您将获得额外的 5 分

标签: android listview button clickable


【解决方案1】:

从 Button 中移除 focusable 属性可以解决这个问题。您可以在布局 xml 文件或 java 源代码中执行此操作。

还有一个提示,如果您使用 ImageButton 而不是 Button,则需要在您的 java 代码中设置 setFocusable 才能使其工作,因为 ImageButton 的构造函数会在从 xml 文件膨胀后启用此属性。

【讨论】:

  • 这很棒。比其他解决方法快得多。谢谢!对于不知道如何执行此操作的任何人,只需将 android:focusable="false" 添加到 XML 文件中的按钮即可。
  • 非常感谢!!!对于读者:对于 Button 这是一个真正的解决方案,我检查它。
【解决方案2】:

对列表视图中的可点击按钮使用 onTouch() 回调可能会更好。然后,您应该能够单击列表项和按钮。一些代码见this question(不需要touchDelegate)。

【讨论】:

    【解决方案3】:

    原因是列表视图中的按钮吸收了 onItemClickEvent。

    一个解释清楚的教程是here

    【讨论】:

      【解决方案4】:

      您可以在 ListView 的 .setOnItemClickListener 中使用它

      view.findViewById(R.id.btn_id).setOnClickListener(new View.OnClickListener(){//your method})
      

      【讨论】:

        猜你喜欢
        • 2016-07-24
        • 1970-01-01
        • 2018-02-28
        • 1970-01-01
        • 2012-08-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多