2010-10-14 3 views
0

J'ai été déconner avec des mises en page pour le ListView de mon ListActivity et a trouvé un problème:à ListActivity causant Sauvegarde un comportement indésirable

Lorsque je clique sur un élément de la liste, il commence une nouvelle activité. Malheureusement, lorsque je clique sur le bouton de retour pour retourner à ListActivity, la barre de défilement de ListView se trouve tout en haut. Auparavant, lorsque je cliquais sur le bouton Précédent, l'utilisateur revenait au même endroit dans la liste qu'avant de sélectionner l'élément de liste pour lancer un nouvel écran. Je suis sûr que j'ai supprimé tout le code que j'ai changé, mais le problème persiste. Des idées?

Répondre

0

je me suis dit pourquoi cela se produit

@Override public void onStop() { 
    super.onStop(); 
    if (mCursor != null) { 
     mCursor.close(); 
     mCursor = null; 
    } 
    mAdapter.changeCursor(null); 
} 

On m'a dit que c'est quelque chose que je suis « censé » faire. Je pense que je peux comprendre pourquoi. Cependant, cela provoque le comportement indésirable que je vois ici.

0

Si vous tapez sur créer dans votre code votre liste est très probablement recréée et donc la position n'est pas enregistrée. Essayez de faire pivoter le périphérique dans ListActivity (faites défiler vers le milieu et faites-le pivoter) pour voir si vous voyez le problème. Je mettrais en cache la position de la liste et je ferais défiler la liste. Exemple de telles choses: http://developer.android.com/resources/tutorials/notepad/notepad-ex3.html

+0

Je ne fais que surCréer une fois. Quand je tape sur la deuxième activité, puisque l'activité précédente (avec ListView) n'a pas été détruite, elle est portée au sommet de la pile. Auparavant, le défilement de ListView serait ce que je l'ai laissé à. Maintenant, c'est en haut: \ je ne devrais pas avoir à mettre en cache la position parce que Android est censé gérer cela pour moi. J'ai évidemment fait quelque chose pour bousiller, mais je ne peux pas comprendre ce que: \ – Andrew

+0

Il serait extrêmement difficile de dire sans le code. –

Questions connexes