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

Android Discussion :

Essai première application


Sujet :

Android

  1. #1
    Membre confirmé Avatar de hugoclo
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    615
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 615
    Points : 480
    Points
    480
    Par défaut Essai première application
    Bonjour,
    Voila depuis hier j'essaye un peu le SDK Android avec eclipse.
    Mon But consiste à lister un répertoire(assets) quand je clique sur un bouton et inscrire le nom des fichiers dans un textView.
    Voici mon code
    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    import java.io.File;
    import java.io.FilenameFilter;
     
    import android.app.Activity;
    import android.os.Bundle;
    import android.widget.Button;
    import android.widget.TextView;
    import android.view.View;
    import android.view.View.OnClickListener;
     
    public class MyAndroidAppActivity extends Activity {
     
    	Button button;
    	TextView textview;
    	@Override
    	public void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.main);
    			addListenerOnButton();
    			textview = (TextView)findViewById(R.id.textView1);
    	}
    	public void listerRepertoire(File repertoire){
     
    		String [] listefichiers;
     
    		int i;
    		listefichiers=repertoire.list();
    		for(i=0;i<listefichiers.length;i++){
    		if(listefichiers[i].endsWith(".txt")==true){
    			textview.setText(listefichiers[i].toString());
     
    		}
    		}
    		}
    	public void addListenerOnButton() {
     
    		button = (Button) findViewById(R.id.button1);
     
    		button.setOnClickListener(new OnClickListener() {
     
    			@Override
    			public void onClick(View arg0) {
    				listerRepertoire(new File(System.getProperty("assets")));
     
    			}
     
    		});
     
    	}
     
    }
    Et Bien sur rien: Quand je clique sur le bouton un mesage apparait sur l'emulateur et je doit "Forcer l'arret de l'appli".
    Je ne connait pas Eclipse. 'ai pour habitude de me servir de Netbeans pour coder(Java).
    Le fichier log
    02-09 10:25:18.251: W/dalvikvm(360): threadid=1: thread exiting with uncaught exception (group=0x40014760)
    02-09 10:25:18.261: E/AndroidRuntime(360): FATAL EXCEPTION: main
    02-09 10:25:18.261: E/AndroidRuntime(360): java.lang.NullPointerException
    02-09 10:25:18.261: E/AndroidRuntime(360): at java.io.File.fixSlashes(File.java:205)
    02-09 10:25:18.261: E/AndroidRuntime(360): at java.io.File.init(File.java:189)
    02-09 10:25:18.261: E/AndroidRuntime(360): at java.io.File.<init>(File.java:139)
    02-09 10:25:18.261: E/AndroidRuntime(360): at com.mkyong.android.MyAndroidAppActivity$1.onClick(MyAndroidAppActivity.java:45)
    02-09 10:25:18.261: E/AndroidRuntime(360): at android.view.View.performClick(View.java:3100)
    02-09 10:25:18.261: E/AndroidRuntime(360): at android.view.View$PerformClick.run(View.java:11644)
    02-09 10:25:18.261: E/AndroidRuntime(360): at android.os.Handler.handleCallback(Handler.java:587)
    02-09 10:25:18.261: E/AndroidRuntime(360): at android.os.Handler.dispatchMessage(Handler.java:92)
    02-09 10:25:18.261: E/AndroidRuntime(360): at android.os.Looper.loop(Looper.java:126)
    02-09 10:25:18.261: E/AndroidRuntime(360): at android.app.ActivityThread.main(ActivityThread.java:3997)
    02-09 10:25:18.261: E/AndroidRuntime(360): at java.lang.reflect.Method.invokeNative(Native Method)
    02-09 10:25:18.261: E/AndroidRuntime(360): at java.lang.reflect.Method.invoke(Method.java:491)
    02-09 10:25:18.261: E/AndroidRuntime(360): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841)
    02-09 10:25:18.261: E/AndroidRuntime(360): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599)
    02-09 10:25:18.261: E/AndroidRuntime(360): at dalvik.system.NativeStart.main(Native Method)
    Lorsque le sage montre la lune du doigt l'idiot regarde le doigt.

  2. #2
    Membre éprouvé
    Homme Profil pro
    Directeur
    Inscrit en
    Avril 2003
    Messages
    724
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur

    Informations forums :
    Inscription : Avril 2003
    Messages : 724
    Points : 1 166
    Points
    1 166
    Par défaut
    Salut,

    Tu as une erreur:
    java.lang.NullPointerException
    juste après un accès au fichier:
    at java.io.File.fixSlashes(File.java:205)

    Tu pourrais donc vérifier si:
    listerRepertoire(new File(System.getProperty("assets")));

    fonctionne correctement, en mode pas à pas avec le debugger.
    Cordialement,
    Philippe

  3. #3
    Expert éminent

    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
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    Même pas la peine de chercher au debugger....

    Puisqu'on est dans le constucteur de File... c'est que System.getProperty("assets") a retourné null.


    D'ailleurs les seules propriétés "sûres" sont listées dans la documentation: et il n'y a pas "assets"...


    Au passage:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (listefichiers[i].endsWith(".txt")==true)
    [FONT=Tahoma, Calibri, Verdana, Geneva, sans-serif]est plus lisible (je pense) avec:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [/FONT]if (listefichiers[i].endsWith(".txt"))

    Le TextView n'affichera donc que le tout dernier fichier (puisqu'il est modifié à chaque boucle).

    Et il est possible de filtrer les fichiers pendant le "list()"
    Donc le code final pourrait ressembler à:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    File[] listeFichiers = repertoire.list(new FilenameFilter() { 
                                                            public boolean accept(File dir, String filename) 
                                                            { return filename.endsWith(".txt"); } 
                                                       } );
    if (listeFichiers.length > 0) textView.setText(listeFichiers
    [listeFichiers.length-1]);

    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  4. #4
    Membre confirmé Avatar de hugoclo
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    615
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 615
    Points : 480
    Points
    480
    Par défaut
    Bonjour,
    Merci pour vos réponses
    Voici mon code corrigé
    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    public class MyAndroidAppActivity extends Activity {
     
    	Button button;
    	TextView textview;
    	@Override
    	public void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.main);
    			addListenerOnButton();
    			textview = (TextView)findViewById(R.id.textView1);
    	}
    	public void listerRepertoire(File repertoire){
    		textview.setText("toto");
    		String[] listeFichiers = repertoire.list(new FilenameFilter() { 
                public boolean accept(File dir, String filename) 
                { return filename.endsWith(".txt"); } 
           } );
    			if (listeFichiers.length > 0) textview.setText(listeFichiers
    					[listeFichiers.length-1]);
     
    		}
    	public void addListenerOnButton() {
     
    		button = (Button) findViewById(R.id.button1);
     
    		button.setOnClickListener(new OnClickListener() {
     
    			@Override
    			public void onClick(View arg0) {
    				listerRepertoire(new File("D:\\mail"));
     
    			}
     
    		});
     
    	}
     
    }
    J'ai toujours la même erreur
    Lorsque le sage montre la lune du doigt l'idiot regarde le doigt.

  5. #5
    Expert confirmé
    Avatar de Hephaistos007
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2004
    Messages
    2 493
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 493
    Points : 4 166
    Points
    4 166
    Par défaut
    Je suis heureux d'appendre que tu as un répertoire "D:\\mail" sur ton smartphone. C'est quelle marque celui-là ?
    Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes --- devise SHADOKS

    Kit de survie Android : mon guide pour apprendre à programmer sur Android, mon tutoriel sur les web services et enfin l'outil en ligne pour vous faire gagner du temps - N'oubliez pas de consulter la FAQ Android

  6. #6
    Membre confirmé Avatar de hugoclo
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    615
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 615
    Points : 480
    Points
    480
    Par défaut
    Tout à fait je suis une truffe.
    Lorsque le sage montre la lune du doigt l'idiot regarde le doigt.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 13
    Dernier message: 05/05/2007, 00h59
  2. [OPENGL] Première application avec Newton Engine
    Par Bakura dans le forum Contribuez
    Réponses: 24
    Dernier message: 11/11/2006, 13h46
  3. [hibernate][spring] première application
    Par iftolotfi dans le forum Hibernate
    Réponses: 2
    Dernier message: 01/06/2006, 07h03
  4. [Debutant(e)] Lancement de ma première application J2EE
    Par thomas_le_debutant dans le forum Java EE
    Réponses: 14
    Dernier message: 15/03/2006, 09h12
  5. [DEBUTANT]Première application avec XML
    Par mlallem dans le forum XML/XSL et SOAP
    Réponses: 6
    Dernier message: 17/11/2005, 15h07

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