2

複数選択モードの 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

なぜ彼らは選ばれないのですか?

4

1 に答える 1