IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Composants graphiques Android Discussion :

Afficher noms fichiers d'un dossier dans un Spinner


Sujet :

Composants graphiques Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 41
    Par défaut Afficher noms fichiers d'un dossier dans un Spinner
    Bonsoir à tous,

    Me remettant à bosser sur mon projet, je dois faire une application Android.

    En effet, sur ma première activité, l'utilisateur doit choisir un des fichiers d'un dossier précis à partir d'un Spinner puis de l'ouvrir en appuyant sur "Choisir".
    Mais pour le moment, j'ai beau cherché sur le net, je n'arrive pas à faire afficher le nom des fichiers dans mon Spinner.

    Pouvez-vous m'éclairer sur le sujet ?
    Je suis très débutant en Java/Android et j'ai assez de mal à comprendre pour le moment ... (même après avoir lu plein de cours/tutos/Livres).

    Merci d'avance

  2. #2
    Membre éclairé
    Homme Profil pro
    Lycéen
    Inscrit en
    Juillet 2012
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Juillet 2012
    Messages : 72
    Par défaut De même
    Pour tout te dire j'ai du mal a voir ou tu pêche ... le spinner? les noms des dossiers? Tu as pensé à regarder les samples pour voir s'il n'y avait pas quelque chose? En clair, pourrais-tu t'expliquer un peu plus stp?

  3. #3
    Expert confirmé

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Billets dans le blog
    3
    Par défaut
    Les notions:

    java.io.File (pour la lecture du répertoire)
    Spinner (bien sur)
    Adapter (pour remplir le spinner) [à priori un simple ArrayAdapter devrait suffire)

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 41
    Par défaut
    @Cheikdav :
    Dans un dossier "Fichiers" j'ai "Fichier1.txt", "Fichier2.txt" ...
    Je cherche à afficher les noms (Fichier1.txt, Fichier2.txt ...) dans mon spinner.

    @nicroman : Merci beaucoup. J'essaie ça demain .

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 41
    Par défaut
    Je ne parviens pas à comprendre le ArrayAdapter ...
    J'ai beau lire et re-lire la doc mais je ne comprends pas comment l'utiliser ni où placer ma méthode ...
    J'ai beau lire les cours sur le net, mes livres mais je ne comprend vraiment pas ...
    Je suis vraiment perdu sur la programmation Android mais je n'ai pas le choix alors j'essaies de comprendre ...

    Actuellement j'ai ce code ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    package com.example.gestion_parcours;
     
    import android.os.Bundle;
    import android.app.Activity;
    import android.view.Menu;
    import android.widget.*;
     
    public class MainActivity extends Activity {
     
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            Spinner sp = (Spinner)findViewById(R.id.spinner1);
     
        }
     
        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            getMenuInflater().inflate(R.menu.activity_main, menu);
            return true;
        }
    }
    Je suppose que la méthode je dois l'écrire juste après " Spinner sp = ... " mais je sais pas comment utiliser ArrayAdapter .

    Vous devez me prendre pour un noob ...

  6. #6
    Expert confirmé

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Billets dans le blog
    3
    Par défaut
    Déjà ... il faut comprendre ce qu'est une "AdapterView" (comme ListView, GridView, Spinner, ...):
    C'est une view qui peut avoir un nombre très grand d'éléments... Comme stocker une view pour chacun de ces éléments coûterait très très cher en terme de mémoire, et que les créer à la demande coûterait cher en terme de CPU, les AdapterView ne maintiennent qu'un nombre limité de d'élements, et les recycle au fur et à mesure que l'affichage change.

    Pour ce faire les AdapterView utilisent un "Adapter" qui va indique à l'AdapterView: comment créer justement les views, comment les remplir (association avec un élément) et bien sur, comment accèder à un élément directement....

    Donc grosso modo, Adapter va proposer deux fonctions: getItem(atPosition) et getView(atPosition) (ces fonctions sont un poil plus compliquée, mais c'est la base).

    Il existe des tas d'implémentation de Adapter, parmi les plus "connues": CursorAdapter (qui récupère les données d'une requête en base de données), et ArrayAdapter (qui récupère les données ... d'un tableau java).
    Tous ces adapter utilisent un identifiant de layout pour définir la view associée à chacun des items.

    ArrayAdapter<String> va donc ainsi contenir un tableau de string comme données de base (getItem(atPosition) va simplement renvoyer l'élément à l'index spécifi). ArrayAdapter<Tartempion> contiendra un tableau d'objets de types "Tartempion".

    Donc, on va avoir:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    File[] allFiles = ....;
    Spinner sp = (Spinner)findViewById(R.id.spinner1);
    ArrayAdapter<File> adapter = new ArrayAdapter<File>(this,android.R.layout.simple_list_item,allFiles);
    sp.setAdapter(adapter);
    Mais le probleme c'est que les chemins complets seront affichés (la conversion en 'String' de File est le chemin complet), donc il va falloir faire autre chose:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    File[] allFiles = ....;
    String[]allFileNames = new String[allFiles.length];
    int idx = 0;
    for (File f : allFiles) { allFileNames[idx++] = f.getName(); }
     
    Spinner sp = (Spinner)findViewById(R.id.spinner1);
    ArrayAdapter<String> adapter = new ArrayAdapter<File>(this,android.R.layout.simple_list_item,allFileNames);
    sp.setAdapter(adapter);

Discussions similaires

  1. [Python 3.X] [Tkinter] Afficher la liste des fichiers d'un dossier dans une fenêtre.
    Par niduab dans le forum Tkinter
    Réponses: 20
    Dernier message: 26/08/2014, 18h37
  2. Réponses: 6
    Dernier message: 24/11/2008, 20h51
  3. Réponses: 5
    Dernier message: 18/07/2008, 11h28
  4. Afficher les images d'un dossier dans une IHM
    Par danathane dans le forum Langage
    Réponses: 4
    Dernier message: 26/06/2008, 15h27
  5. Afficher le contenu d'un dossier dans une page HTML
    Par mauriceuh dans le forum Balisage (X)HTML et validation W3C
    Réponses: 23
    Dernier message: 20/02/2007, 16h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo