Substitut Posté(e) 26 juillet 2012 Share Posté(e) 26 juillet 2012 Bonjour, j'ai un petit problème avec une listView. En gros je stocke dans ma listView la liste des fichiers présent dans mon répertoire /mnt/sdcard. Je génère bien ma ListView pas de problème. Cependant j'ai créé un ArrayAdapter afin de personnaliser mes View. J'ai voulu deux types de View : Les fichiers et les répertoires voici donc mon code. private class PrintableFilesAdapter extends ArrayAdapter<String> { private ArrayList<String> files; public PrintableFilesAdapter(Context context, ArrayList<String> files) { super(context, 0, files); this.files = files; } @Override public View getView(int position, View convertView, ViewGroup parent) { String fileName = files.get(position); if (convertView == null) { if (fileName.contains("/mnt/sdcard")) { final LayoutInflater inflater = getLayoutInflater(); convertView = inflater.inflate(R.layout.directory_item, parent, false); } else { final LayoutInflater inflater = getLayoutInflater(); convertView = inflater.inflate(R.layout.file_item, parent, false); } } final TextView textView = (TextView) convertView.findViewById(R.id.textview); textView.setText(fileName); return convertView; } @Override public String getItem(int position) { return files.get(position); } @Override public int getCount() { return files.size(); } } Au chargement de mon activité pas de soucie, les répertoires sont bien différent des fichiers. Cependant des que je me deplace dans ma view, c'est le bazar. Les view se mélangent je me retrouve avec des fichiers qui ont pour layout celui réservé aux répertoires et vice versa. Comment expliquer ca et le résoudre ? Merci. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Substitut Posté(e) 26 juillet 2012 Auteur Share Posté(e) 26 juillet 2012 Le problème venait de mon if(convertView==null). Cette condition sert a l'optimisation de l'affichage de la listView mais a priori ici elle me fait bugguer. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Recommended Posts
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.