Listar itens com cores alternadas

Eu tenho uma exibição de lista e um adaptador que define alternando cores de plano de fundo para os itens de lista (estilo de lista "zebra"):

public View getView(final int position, View convertView, ViewGroup parent) {
    int colorPos = position % colors.length;
    ...
    convertView.setBackgroundColor(colors[colorPos]);
    return convertView;
}

Mas agora, quando eu seleciono um item usando a roda de rolagem, ou quando eu clico em um item, as cores originais para selecionar / clicar não substituem meus planos de fundo personalizados (eu posso ver a cor original abaixo da que eu defini).

Como posso definir as cores originais desses estados?

questionAnswers(2)

yourAnswerToTheQuestion