Android ListView 다중 선택은 칙 후에 하이라이트를 표시하지 않습니다.
-
02-01-2020 - |
문제
다중 선택 모드에서 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"
>
. 제휴하지 않습니다 StackOverflow