【问题标题】:Android CheckBox in ListView get focusListView中的Android CheckBox获得焦点
【发布时间】:2018-05-03 20:20:34
【问题描述】:

我有一个 ListView,每个项目都有一个 TextView 和一个 CheckBox。我希望用户可以通过按行来选择每个项目。但复选框也得到关注。单击列表项时,我想从复选框中移除焦点。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="72dp"
    android:orientation="horizontal">
    <TextView
        android:id="@android:id/text1"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1"/>
    <CheckBox
        android:id="@android:id/checkbox"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:clickable="false"
        android:focusable="false"/>
</LinearLayout>

按下列表项时的屏幕截图:

【问题讨论】:

    标签: android list listview checkbox focus


    【解决方案1】:

    另外禁用 focusableInTouchMode:

    android:focusable="false"
    android:focusableInTouchMode="false"
    

    myCheckBox.setFocusable(false);
    myCheckBox.setFocusableInTouchMode(false);
    

    或在该行的 onClickListener 顶部捕获它:

    myCheckBox.clearFocus();
    

    【讨论】:

      【解决方案2】:

      在getView()方法内部,

      holder.multiselect_checkbox.setOnClickListener(new View.OnClickListener()
                  {
                      @Override
                      public void onClick(View view)
                      {
                          //do something suitable for you
                      }
                  });
      

      这里

      holder.multiselect_checkbox

      是您的复选框对象名称。

      这将移除复选框的焦点。

      【讨论】:

        猜你喜欢
        • 2014-10-07
        • 1970-01-01
        • 2012-07-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-01-04
        • 2012-09-22
        • 1970-01-01
        相关资源
        最近更新 更多