문제

다중 선택 모드에서 ListView가 있습니다.확인란을 원하지 않습니다.나는 단지 항목을 클릭하면 체크 된 상태를 표시하는 데 강조 표시 될 수 있습니다.다시 클릭하면 하이라이트가 사라지고 선택되지 않습니다.

이제 내 문제는 내 항목이 검사되지 않고 전혀 강조 표시되지 않습니다.나는 그 이유를 모르겠다.

여기에 코드가 있습니다.

mFriendList.setAdapter(adapter);
        mFriendList.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
        mFriendList.setOnItemClickListener(new FriendsItemClickListener());
        }
}


// The click listener for FriendsList
private class FriendsItemClickListener implements
        ListView.OnItemClickListener {
    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position,
            long id) {
        Log.d("ItemClickPosition", String.valueOf(position));

        // if already checked, then uncheck
        if(mFriendList.isItemChecked(position)){
            mFriendList.setItemChecked(position, false);
            Log.d("OnItemClick", String.valueOf(mFriendList.isItemChecked(position)));
        }else{
            // if uncheck, then check
            mFriendList.setItemChecked(position, true);
            Log.d("OnItemClick", String.valueOf(mFriendList.isItemChecked(position)));
        }
    }
.

이제 문제는 항목이 검사되지 않거나 하이라이트를 표시하는 것입니다. 그리고 내가 가진 모든 로그는 다음과 같습니다 :

ItemClickPosition   0 
OnItemClick         false
ItemClickPosition   1 
OnItemClick         false
ItemClickPosition   2 
OnItemClick         false
.

왜이 이유가 선택되어 있지 않습니까?

도움이 되었습니까?

해결책

아래

와 같은 선택기를 사용하십시오

highlight.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android" >
    <item 
        android:state_activated="true"
        android:drawable="@color/pressed_color"/>

</selector>
.

및 아래의 상대 / 선형 레이아웃에서 사용하십시오

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"

    android:layout_height="match_parent"


    android:background="@drawable/highlight"
>
.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top