ListView item colorir na seleção não está funcionando corretamente na versão 8/9 da API do Android

Atualmente estou usando um ListView para exibir um tipo de itens. Eu implementei um modo de ação para selecionar vários itens e excluir maciçamente que funciona bem no Android 4.x. Mas quando eu tentei com a versão 8 ou 9 da API (android 2.2.x / 2.3.x), a seleção funciona internamente como esperado, mas os itens da linha são coloridos aleatoriamente.

Se o usuário selecionar a primeira linha, a primeira linha interna será selecionada, mas o número da linha 4 será colorido. Quando clico em outra linha, esta linha e a primeira são coloridas. É um comportamento estranho que eu espero que funcione normalmente como em dispositivos 4.x.

Clique com o botão direito sobre a tecla para ativar o modo de ação e verifique o item de ListView há muito tempo clicado:

@Override
public boolean onItemLongClick(AdapterView<?> adapterView, View view, int position, long id) {
    if (actionMode == null) {
        listView.setOnItemClickListener(new CABClickListener());
        actionMode = startActionMode(new ListActionMode());
        // Check item pressed with long click
        listView.setItemChecked(position, true);
        view.setBackgroundColor(checkedColor);
        logger.debug("Item at pos. " + position + ", checked.");
    }
    return true;
}

CABClickListener, responsável por marcar / desmarcar itens do ListView, marcando-os internamente e alterando sua cor de fundo:

private final class CABClickListener implements AdapterView.OnItemClickListener {
    @Override
    public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) {
        if (listView.isItemChecked(position)) {
            view.setBackgroundColor(checkedColor);
            logger.debug("Item at pos. " + position + ", checked.");
        } else {
            view.setBackgroundColor(uncheckedColor);
            logger.debug("Item at pos. " + position + ", unchecked.");
        }
    }
}

Essas classes / métodos estão dentro da Activity,listView é declarado em cima dele.

Mais considerações:

Usando ActionBarSherlock (mostra o CAB, mas acho que isso não é importante aqui) e Roboguice, mas eu não tenho nenhum problema com isso.Eu estava sempre desenvolvendo com o emulador. Além disso, eu não pude experimentar meu aplicativo com o Android 3.x (tenho problemas com esta versão, o emulador não inicia), então não sei se o problema persiste nessas versões. ATUALIZAÇÃO: Testado no android 3.0 API 11, funciona bem como no 4.x.Eu depurei o código eViews em ambos os métodos estão ok, mas quando eu chamoview.setBackgroundColor(checkedColor);, outroView é colorido.

Alguma sugestão? Espero que alguém possa ajudar!

questionAnswers(1)

yourAnswerToTheQuestion