【问题标题】:ListView with EditText and OnItemClickListener带有 EditText 和 OnItemClickListener 的 ListView
【发布时间】:2016-12-11 16:13:14
【问题描述】:

我有一个带有自定义适配器的 ListView,它使用 EditText 和 TextView 填充项目:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:layout_width="match_parent"
              android:layout_height="wrap_content">

    <EditText
        android:id="@+id/et_choice_prob"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:inputType="numberSigned"/>

    <TextView
        android:id="@+id/tv_choice_name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@id/et_choice_prob"
        android:layout_alignBaseline="@id/et_choice_prob"
        android:layout_marginLeft="5dip"
        />


</RelativeLayout>

如果我想设置一个 OnItemClickListener 它永远不会被调用,因为 EditText 窃取了焦点。

另一个线程提到我应该将focusable 设置为false,这将删除实际编辑TextView 的能力。

我还尝试将ListViewdescendantFocusability 设置为任何可用选项,但均未成功。

适配器没有做任何花哨的事情,但我会根据要求提供源代码。其他所有操作都在另一个 ListFragment 上以相同的方式完成,并且可以正常工作。

【问题讨论】:

  • 您是否尝试在视图的每个子项上添加 onclicklistener ? stackoverflow.com/a/6090713/2667946
  • 是的……我已经在想出那种定制的解决方案了。但这真的让我很烦恼,为什么那个愚蠢的OnItemClickListener 没有触发
  • 你找到解决办法了吗?

标签: android listview click focusable


【解决方案1】:

尝试在你的EditText标签中添加这段代码

android:focusable="true"
android:focusableInTouchMode="true"

【讨论】:

  • 不,没有区别
【解决方案2】:

setOnClickListener 设置为RelativeLayout,同时在适配器的getView 方法中扩展列表项视图。您的 EditText 与父级不匹配,因此当您单击列表行的另一侧时,这必须有效。

【讨论】:

  • 实际上与@JulienGenoud 对问题的第一条评论中的解决方案相同
  • 在SO中搜索后,我认为这应该是解决这个问题的正确方法,尽管这里的样板代码太多。但是像descendantFocusability 这样的任何其他解决方案都不适合我。此外,我不明白为什么focusable 可能会在列表视图中中断onItemClickListener
【解决方案3】:

在适配器类中的单个项目的视图上设置 onTouchlistener。此外,您还必须管理列表的状态,以便在滚动列表时禁用 onTouch,当不滚动时,onTouch 应该照常工作。它在我的项目中的回收站视图上运行良好。也应该与 ListView 一起使用。

【讨论】:

    猜你喜欢
    • 2012-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多