ListView中的Android CheckBox获得焦点

时间:2015-01-18 15:22:24

标签: android list listview checkbox focus

我有一个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>

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

enter image description here enter image description here

2 个答案:

答案 0 :(得分:0)

另外禁用focusableInTouchMode:

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

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

或者在行的顶部抓住onClickListener:

myCheckBox.clearFocus();

答案 1 :(得分:0)

在getView()方法中,

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

这里

  

holder.multiselect_checkbox

是您的复选框对象名称。

这将删除您的复选框的焦点。