Android ListView Multi-Choit Не показывать вывес после Chlicking
-
02-01-2020 - |
Вопрос
У меня есть список просмотров в режиме мульти-выбора.Я не хочу флажок.Я просто хочу, когда я нажимаю на предметы, они могли выделить, чтобы показать проверенное состояние.При нажатии снова выяснится, выделение исчезнут и не проверено.
Так что теперь моя проблема в том, что мои товары не проверяются и выделяют вообще.Я не знаю почему.
Вот код:
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)));
}
}
.
Теперь проблема в том, что элементы никогда не проверяются или показывают. И весь журнал I получил:
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