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 :

Souci application basique


Sujet :

Android

  1. #1
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2014
    Messages : 23
    Points : 19
    Points
    19
    Par défaut Souci application basique
    Salut,
    je me lance dans la programmation sur android et j'aimerais faire une appli basique qui lorsque l'on clique sur une image, lance un lien dans le navigateur. Pour l'instant j'ai ça :
    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
    public class MainActivity extends Activity {
     
    	TextView main = null;
    	ImageView img = null;
     
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    	    //TextView main = (TextView)findViewById(R.id.main);
    	    ImageView img = (ImageView) findViewById(R.id.mainlogo);
     
    	    img.setOnClickListener(new OnClickListener() {
    	    public void onClick(View v) {
    	    	String url = "http://http://www.lien.com/index.php";
    	    	Intent intent = new Intent( Intent.ACTION_VIEW, Uri.parse(url) );
    	    	startActivity(intent);
    	    }
     
    	    });
    	    }
     
     
    	@Override
    	public boolean onCreateOptionsMenu(Menu menu) {
    		// Inflate the menu; this adds items to the action bar if it is present.
    		getMenuInflater().inflate(R.menu.main, menu);
    		return true;
    	}
     
     
    }
    eclipse me dit que j'ai aucune erreur pourtant j'ai un force close de l'appli avec :
    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
    01-21 20:50:58.285: E/AndroidRuntime(14496): FATAL EXCEPTION: main
    01-21 20:50:58.285: E/AndroidRuntime(14496): Process: com.info.worshiprom, PID: 14496
    01-21 20:50:58.285: E/AndroidRuntime(14496): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.info.worshiprom/com.info.worshiprom.MainActivity}: java.lang.NullPointerException
    01-21 20:50:58.285: E/AndroidRuntime(14496): 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2198)
    01-21 20:50:58.285: E/AndroidRuntime(14496): 	at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2248)
    01-21 20:50:58.285: E/AndroidRuntime(14496): 	at android.app.ActivityThread.access$800(ActivityThread.java:138)
    01-21 20:50:58.285: E/AndroidRuntime(14496): 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1199)
    01-21 20:50:58.285: E/AndroidRuntime(14496): 	at android.os.Handler.dispatchMessage(Handler.java:102)
    01-21 20:50:58.285: E/AndroidRuntime(14496): 	at android.os.Looper.loop(Looper.java:136)
    01-21 20:50:58.285: E/AndroidRuntime(14496): 	at android.app.ActivityThread.main(ActivityThread.java:5050)
    01-21 20:50:58.285: E/AndroidRuntime(14496): 	at java.lang.reflect.Method.invokeNative(Native Method)
    01-21 20:50:58.285: E/AndroidRuntime(14496): 	at java.lang.reflect.Method.invoke(Method.java:515)
    01-21 20:50:58.285: E/AndroidRuntime(14496): 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
    01-21 20:50:58.285: E/AndroidRuntime(14496): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
    01-21 20:50:58.285: E/AndroidRuntime(14496): 	at dalvik.system.NativeStart.main(Native Method)
    01-21 20:50:58.285: E/AndroidRuntime(14496): Caused by: java.lang.NullPointerException
    01-21 20:50:58.285: E/AndroidRuntime(14496): 	at com.info.worshiprom.MainActivity.onCreate(MainActivity.java:25)
    01-21 20:50:58.285: E/AndroidRuntime(14496): 	at android.app.Activity.performCreate(Activity.java:5241)
    01-21 20:50:58.285: E/AndroidRuntime(14496): 	at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
    01-21 20:50:58.285: E/AndroidRuntime(14496): 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2162)
    01-21 20:50:58.285: E/AndroidRuntime(14496): 	... 11 more
    Merci de votre aide

  2. #2
    Membre éprouvé

    Inscrit en
    Décembre 2009
    Messages
    146
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 146
    Points : 900
    Points
    900
    Par défaut
    A quelle ligne correspond la ligne 25 dans ton fichier source ?
    Ton "Activity" est bien déclarée dans ton manifest ?

  3. #3
    Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2011
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2011
    Messages : 47
    Points : 46
    Points
    46
    Par défaut
    Salut,


    Pour ma part je pense qu'il y a déjà un problème sur ton intent.
    En effet, en lisant la javadoc android ( http://developer.android.com/referen...nt/Intent.html ) je pense qu'il te faut plutôt utiliser "ACTION_WEB_SEARCH" pour ouvrir ton lien

    Je cite :
    Input: getStringExtra(SearchManager.QUERY) is the text to search for. If it is a url starts with http or https, the site will be opened. If it is plain text, Google search will be applied.

  4. #4
    Modérateur
    Avatar de Hizin
    Homme Profil pro
    Développeur mobile
    Inscrit en
    Février 2010
    Messages
    2 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Février 2010
    Messages : 2 180
    Points : 5 072
    Points
    5 072
    Par défaut
    Tu as une NullPointerException (NPE), l'erreur la plus commune et connue en Java.

    Elle signifie que tu invoques une méthodes sur un objet null, ou que tu passes un objet null en paramètre d'une méthode qui ne le supporte pas.

    Pour la stacktrace :
    Caused by: java.lang.NullPointerException
    at com.info.worshiprom.MainActivity.onCreate(MainActivity.java:25)
    at android.app.Activity.performCreate(Activity.java:5241)
    Problème provoqué par une NPE (1ère ligne), ayant été levé dans la classe MainActivity du package com.info.worshiprom, dans la méthode onCreate à la ligne 25 du fichier (2ème ligne), pendant qu'Android essaie de créer l'Activity (3ème ligne).

    Au vu du code présenté, je dirai que la ligne 25, celle qui pose problème, est celle-ci : img.setOnClickListener([...]). Juste avant, tu vas chercher la référence, mais je note une absence de setContentView dans ton activité, montrant ainsi qu'elle n'est liée à aucune vue.
    Rajoute donc setContentView(R.layout.ton_xml); en tant que première instruction et ça devrait fonctionner.
    C'est Android, PAS Androïd, ou Androïde didiou !
    Le premier est un OS, le second est la mauvaise orthographe du troisième, un mot français désignant un robot à forme humaine.

    Membre du comité contre la phrase "ça marche PAS" en titre et/ou explication de problème.

    N'oubliez pas de consulter les FAQ Android et les cours et tutoriels Android

  5. #5
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2014
    Messages : 23
    Points : 19
    Points
    19
    Par défaut
    Merci je teste ca cet aprem

  6. #6
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2014
    Messages : 23
    Points : 19
    Points
    19
    Par défaut
    bon le souci est résolu grâce à Hizin
    j'aimerais rajouter un menu a mon appli (il est dèjà présent sous la forme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    	@Override
    	public boolean onCreateOptionsMenu(Menu menu) {
    		// Inflate the menu; this adds items to the action bar if it is present.
    		getMenuInflater().inflate(R.menu.main, menu);
    		return true;
     
    	}
    et j'aimerais que lorsque l'on clic sur settings cela ouvre un autre layout (le truc de base quoi), j'ai fais des recherches mais tous parles d'ancienne manière qui ne corresponde plus .. (android 2.3.
    ce code permet juste de faire pparaitre un menu dans la barre en haut mis ne permet pas de lancer un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    setContentView(R.layout.menu);
    ..

  7. #7
    Modérateur
    Avatar de Hizin
    Homme Profil pro
    Développeur mobile
    Inscrit en
    Février 2010
    Messages
    2 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Février 2010
    Messages : 2 180
    Points : 5 072
    Points
    5 072
    Par défaut
    Attention pour le menu, les terminaux ne possèdent plus obligatoirement de bouton physique pour le menu.
    En ce cas, il est préconisé soit de ne pas utiliser de menu, soit d'utiliser une Action Bar détectant ce cas.

    Pour ouvrir un "autre layout", le cas classique est de passer par un Intent, ou de remplacer le Fragment visible.
    C'est Android, PAS Androïd, ou Androïde didiou !
    Le premier est un OS, le second est la mauvaise orthographe du troisième, un mot français désignant un robot à forme humaine.

    Membre du comité contre la phrase "ça marche PAS" en titre et/ou explication de problème.

    N'oubliez pas de consulter les FAQ Android et les cours et tutoriels Android

  8. #8
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2014
    Messages : 23
    Points : 19
    Points
    19
    Par défaut
    oui en fait je veux juste que lorsque l'on cilque sur le 3dot en haut (qui ouvre un panneaux avec marqué settings) puis sur settings que cela m'ouvre cet autre layout
    tu me peux me montrer un exemple de code parce j'ai aucune idée du comment la ?
    j'ai essayer ça mais rien ne ce passe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    	public boolean onMenuItemSelected (Menu menu) {
    		setContentView(R.layout.activity_menu);
    		return true;
     
    	}


    EDIT :
    j'ai ça mais toujousr rien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    	@Override
    	public boolean onOptionsItemSelected(MenuItem item) {
    	    switch(item.getItemId()) {
    	    case R.id.action_settings:
    	    	setContentView(R.layout.activity_main); //oups j'ai oublier de changer le layout)
    	        //Intent intent = new Intent(this, ActivityForItemOne.class);
    	        //this.startActivity(intent);
    	        // another startActivity, this is for item with id "menu_item2"
    	        break;
    	    default:
    	        return super.onOptionsItemSelected(item);
    	    }
     
    	    return true;

  9. #9
    Modérateur
    Avatar de Hizin
    Homme Profil pro
    Développeur mobile
    Inscrit en
    Février 2010
    Messages
    2 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Février 2010
    Messages : 2 180
    Points : 5 072
    Points
    5 072
    Par défaut
    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Intent intent = new Intent(this, ActivityForItemOne.class);
    startActivity(intent);

    Ca devrait normalement être ça. Que se passe-t-il dans ce cas-là ?
    C'est Android, PAS Androïd, ou Androïde didiou !
    Le premier est un OS, le second est la mauvaise orthographe du troisième, un mot français désignant un robot à forme humaine.

    Membre du comité contre la phrase "ça marche PAS" en titre et/ou explication de problème.

    N'oubliez pas de consulter les FAQ Android et les cours et tutoriels Android

  10. #10
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2014
    Messages : 23
    Points : 19
    Points
    19
    Par défaut
    il faut que je fasse une nouvelle classe du coup ?
    ActivityForItemOne n'est pas reconnu par eclipse

  11. #11
    Modérateur
    Avatar de Hizin
    Homme Profil pro
    Développeur mobile
    Inscrit en
    Février 2010
    Messages
    2 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Février 2010
    Messages : 2 180
    Points : 5 072
    Points
    5 072
    Par défaut
    Le standard pour Android est :
    une Activité OU un Fragment <=> une vue

    Avec les particularités des popup (qui sont, selon les guidelines Android, à proscrire autant que faire ce peu).

    Donc oui, une autre classe.
    C'est Android, PAS Androïd, ou Androïde didiou !
    Le premier est un OS, le second est la mauvaise orthographe du troisième, un mot français désignant un robot à forme humaine.

    Membre du comité contre la phrase "ça marche PAS" en titre et/ou explication de problème.

    N'oubliez pas de consulter les FAQ Android et les cours et tutoriels Android

  12. #12
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2014
    Messages : 23
    Points : 19
    Points
    19
    Par défaut
    la je suis perdu .. Eclipse me dit qu'il y a une erreur mais pas ou ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Description	Resource	Path	Location	Type
    Error executing aapt: Return code -1073741819	Worshiprom		line 1	Android ADT Problem
    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.info.worshiprom;
     
    import android.app.Activity;
    import android.os.Bundle;
    import android.view.Menu;
     
     
     
    public class ActivityMenu extends Activity {
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.activity_menu);
    	}
     
    	@Override
    	public boolean onCreateOptionsMenu(Menu menu) {
    		// Inflate the menu; this adds items to the action bar if it is present.
    		getMenuInflater().inflate(R.menu.main, menu);
    		return true;
     
    	}
    }
    EDIT : problème résolu

  13. #13
    Modérateur
    Avatar de Hizin
    Homme Profil pro
    Développeur mobile
    Inscrit en
    Février 2010
    Messages
    2 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Février 2010
    Messages : 2 180
    Points : 5 072
    Points
    5 072
    Par défaut
    Citation Envoyé par flyingrub
    EDIT : problème résolu
    Pour la postérité (et potentiellement toi-même dans quelques années), comment ?

    N'oublie pas le bouton "résolu"
    C'est Android, PAS Androïd, ou Androïde didiou !
    Le premier est un OS, le second est la mauvaise orthographe du troisième, un mot français désignant un robot à forme humaine.

    Membre du comité contre la phrase "ça marche PAS" en titre et/ou explication de problème.

    N'oubliez pas de consulter les FAQ Android et les cours et tutoriels Android

  14. #14
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2014
    Messages : 23
    Points : 19
    Points
    19
    Par défaut
    je sais plus trop j'ai ue bueacoup de souci que j'ai résolu un à un ^^
    car je n'avais pas indiquer dans le manifest la deuxieme acrivity quand j'ai voulu ajouté la nouvelle class via l'utilitaire de eclipse je l'ai renommé ensuite enfin bref

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

Discussions similaires

  1. Tutoriels OpenGL ogldev en français : application basique de texture
    Par LittleWhite dans le forum Développement 2D, 3D et Jeux
    Réponses: 0
    Dernier message: 23/11/2014, 11h49
  2. Cherche application basique pour files io
    Par fgdvlp dans le forum Android
    Réponses: 4
    Dernier message: 19/07/2014, 23h18
  3. [XL-MAC 2011] Petit soucis application formule sur une colone
    Par go4music dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 17/06/2013, 22h20
  4. [VB.NET 2.0] Souci avec My.Application.Log
    Par exclusif dans le forum Windows Forms
    Réponses: 1
    Dernier message: 19/09/2006, 22h25
  5. gros soucis de transfert d'application
    Par gsmdu62 dans le forum Bases de données
    Réponses: 21
    Dernier message: 01/05/2006, 22h13

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