带有EditText和OnItemClickListener的ListView



我有一个带有自定义适配器的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上完成并工作。

尝试在yout EditText标签中添加此代码

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

在适配器的getView方法中膨胀列表项视图时,为RelativeLayout设置setOnClickListener。您的EditText和父级不匹配,所以当您单击列表行的另一侧时,这必须有效。

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

相关内容

  • 没有找到相关文章

最新更新