Android - Mantenha o item do ListView realçado depois que um for clicado
Então eu tenho uma atividade com 2ListView
widgets, quando você seleciona um valor no primeiro, o segundo é preenchido com valores relacionados à seleção no primeiroListView
. Esse mecânico funciona sem problemas, mas agora quero que as opções do usuário permaneçam em destaque. Eu li uma boa quantidade de perguntas relacionadas a esse tópico e parece que existem inúmeras maneiras de fazer isso, mas depois de tentar cerca de 4-5 delas, ainda não consigo fazê-lo funcionar.
Eu tenho que trabalhar no segundoListView
usando oandroid:listSelector="#CCCCCC"
Atributo XML, mas isso parece ser limpo uma vez aOnItemClickListener
é introduzido no mix (como o que eu uso no meu primeiroListView
).
té aqui está o que eu tenho:
PersonalizadasOnItemClickListener
Encontrei várias respostas sobre este tópico (modifiquei-o levemente para carregar minhas informações no segundo ListView):
private class ItemHighlighterListener implements OnItemClickListener {
private View oldSelection = null;
public void clearSelection() {
if(oldSelection != null) {
oldSelection.setBackgroundColor(android.R.color.transparent);
}
}
public void onItemClick(AdapterView<?> parent, View view, int pos, long id) {
clearSelection();
oldSelection = view;
view.setBackgroundDrawable(view.getContext().getResources().getDrawable(R.drawable.list_selector));
loadClubs(mXMLPortalOptions.getRegion(pos).getId());
mClubList.setAdapter(new ArrayAdapter<String>(getApplicationContext(), R.layout.list_item_white, mClubs));
}
}
Aqui está o meulist_selector.xml
Arquivo
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_selected="true"><shape>
<solid android:color="#CCCCCC" />
</shape></item>
<item android:state_selected="false"><shape>
<solid android:color="#FFFFFF" />
</shape></item>
</selector>
O método (OnItemClick) é chamado e executado, mas o plano de fundo do meuListItem
permanece a mesma cor: /
Não acredito que essa tarefa simples tenha se mostrado tão complicad
Se eu tiver omitido o código que possa ser útil ou se a minha pergunta estiver faltando detalhes, fique à vontade para apontar isso e farei o possível para me explica