Android ListView: comment sélectionner un élément?

Je vais avoir des ennuis avec une ListView j'ai créé: je veux un élément pour le sélectionner quand je clique sur elle.

Mon code pour que cela ressemble:

protected void onResume() {
...
ListView lv = getListView(); 
lv.setOnItemSelectedListener(new OnItemSelectedListener() 
{
    public void onItemSelected(AdapterView<?> adapterView, View view, int pos, long id) {
        Log.v(TAG, "onItemSelected(..., " + pos + ",...) => selected: " + getSelectedItemPosition());
    }
    public void onNothingSelected(AdapterView<?> adapterView) {
        Log.v(TAG, "onNothingSelected(...) => selected: " + getSelectedItemPosition());
    }
});
lv.setOnItemClickListener(new OnItemClickListener()
{
    public void onItemClick(AdapterView<?> adapterView, View view, int pos, long id) {
        lv.setSelection(pos);               
        Log.v(TAG, "onItemClick(..., " + pos + ",...) => selected: " + getSelectedItemPosition());              
    }
});
...
}

Lorsque je l'exécute et cliquez par exemple sur le second élément (c'est à dire pos=1) j'obtiens:

04-03 23:08:36.994: V/DisplayLists(663): onItemClick(..., 1,...) => selected: -1

c'est à dire même si la OnItemClickListener est appelée avec l'argument approprié et appelle une setSelection(1), il n'existe aucun élément sélectionné (et donc aussi OnItemSelectedListener.onItemSelected(...) n'est jamais appelée) et getSelectedItemPosition() correspond toujours à -1 après le setSelection(1)-appel.

Ce qui me manque?

Michael

PS.: Ma liste ne avez - >=2 éléments...

OriginalL'auteur mmo | 2012-04-03