複数選択モードの 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
なぜ彼らは選ばれないのですか?