2010-12-05 4 views
1

mon application a un ListActivity pour permettre à l'utilisateur de choisir un fichier dans une liste générée par listFiles().Les fichiers de liste Android ne sont pas actualisés lorsque les fichiers sont modifiés

File f=null; 
File[] files = null; 
f= new File(BOOKPATH); 
    files = f.listFiles(); 
    item = new ArrayList<String>(); 

    for(int i=files.length-1; i >= 0; i--){ 
     File file = files[i]; 
     item.add(file.getName()); 
    } 

Il fonctionne bien, et lorsque l'utilisateur clique sur une entrée, est lancé une activité, l'utilisateur peut modifier le fichier. Lorsque l'utilisateur quitte l'activité d'édition, le contenu modifié est enregistré dans un nouveau fichier avec un nouveau nom et le premier fichier sélectionné est supprimé.

Ensuite, le même code pour obtenir la nouvelle liste de fichiers est appelé à nouveau, sur le onResume() de la première activité.

Le code est bien exécuté, mais la fonction listFiles() renvoie la liste ancienne, comme si un tampon n'était pas actualisé.

Une chose étrange est que la liste correcte des fichiers est renvoyée lorsque je change d'orientation sur le périphérique Android, et onResume() est appelée à nouveau.

J'ai également essayé de relancer l'activité de différentes manières pour obtenir le même comportement, sans succès.

Merci d'avance pour votre aide.

Répondre

0

Essayez notifyDataSetChanged() pour recharger la liste.

+1

Je suis désolé que le problème soit lorsque "files = f.listFiles()" est appelé, le tableau renvoyé est faux. Je crois que notifyDataSetChanged() est utilisé pour refléter un adaptateur à une vue. Veuillez m'excuser si je me trompe, merci. – Mokauno

Questions connexes