我有一个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>
按下列表项时的屏幕截图:
答案 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
是您的复选框对象名称。
这将删除您的复选框的焦点。