android - ListView 행보기에 CheckBox를 추가하면 행을 클릭 할 수 없습니다.

기사 출처 android listview checkbox

Gmail 앱과 유사한 ListView를 만들려고합니다. 여기서 각 행에는 왼쪽에 CheckBox가있어 상황 별 작업 표시 줄을 통해 여러 선택 및 작업을 용이하게하는 동시에 각 행을 클릭하여 전환 할 수 있습니다. 다른 활동에.

원래, CheckBox를 추가하기 전에 행은 내가 사용중인 Holo 테마의 밝은 파란색 배경색으로 선택을 표시하고 클릭하면 onListItemClick에서 ListFragment를 호출하고 onItemLongClick에서 OnItemLongClickListener를 호출합니다. 길게 클릭했습니다.

행보기에 대한 레이아웃 .xml 파일에 CheckBox를 추가하면 배경색이 더 이상 변경되지 않고 더 이상 클릭 또는 긴 클릭 이벤트가 수신되지 않습니다. 내보기 .xml의 맨 위 android:longClickable="true"ViewGroup를 추가하면 다시 긴 클릭 이벤트가 발생하기 시작합니다. 그러나 android:clickable="true"는 클릭 이벤트를 얻지 못합니다. 그리고 어느 쪽도 배경 파란색 선택 표시가 반환되는 것을 허용하지 않습니다. 터치시 CheckBox 자체 만 파란색 배경의 시각적 터치 표시를 제공합니다.

보기에 ListView가있는 CheckBox 행의 클릭 이벤트뿐만 아니라 일반적인 시각적 선택 표시를 얻으려면 어떻게해야합니까?

내 뷰 .xml의 관련 부분은 다음과 같습니다.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:longClickable="true"
    android:orientation="horizontal" >

    <CheckBox
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center" />

    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:orientation="vertical"
        android:paddingBottom="5dp"
        android:paddingRight="12dp"
        android:paddingTop="5dp" >

        ...

    </LinearLayout>
</LinearLayout>
나는이 주제에 대해 당신이 도움이 될만한 blog post를 썼다. 사실 문제는 포커스 가능한 요소 (예 : CheckBox 또는 Button)를 추가하면 전체 목록 항목을 클릭하는 기능이 비활성화되고 포커스 가능성이 비활성화되어야한다는 것입니다. 메인 레이아웃에도 clickable 플래그를 추가해서는 안됩니다.

이 질문에 대해 Stack Overflow에서 비슷한 토론을 찾았습니다: https://stackoverflow.com/questions/14290025/

관련 기사
android - SimpleAdapter에서 textview를 숨기는 방법
android - AndEngine AnimatedSprite가 표시되지 않음
java - ksoap2 SOAP를 통해 복잡한 객체 배열 수신
android - Android : Ant 명령 줄 빌드 중에 버전 정보를 전달하는 방법은 무엇입니까?
android - 보류중인 요청이있는 세션에 대해 새 권한을 요청하려고했습니다.
android - 잠금시 가로 Android 애플리케이션 다시 시작 방지
android - HTC에서 자동 링크가 작동하지 않음-HtcLinkifyDispatcher
android - 스 와이프시 뷰 페이저 뷰를 업데이트하는 방법-Android
php - PHP 서버에서 Android 인앱 결제 서명 확인
android - Android Emulator에서 Google Map V2를 표시하는 방법은 무엇입니까?