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 :

URL sur un bouton


Sujet :

Composants graphiques Android

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2013
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2013
    Messages : 25
    Points : 12
    Points
    12
    Par défaut URL sur un bouton
    Bonjour, tout est dans le titre, j'aimerai créer un bouton qui lorsqu'on clique dessus ouvre une page internet. Pour cela j'ai utilisé ce code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    final Button homepageButton = (Button) findViewById(R.id.homepage);
            homepageButton.setOnClickListener(new View.OnClickListener() {
     
            @Override
            public void onClick(View v) {
            String url = "https://www.azerty.com";
          	Intent intent = new Intent(Intent.ACTION_VIEW);
          	intent.setData(Uri.parse(url));
          	startActivity(intent);
          	}
          });
    et quand j'essaie l'application ça plante, ça me dit que l'application s'est arrêtée. Bien sûr avant de rentrer ce morceau de code ça marchait très bien, et d'après le logcat l'erreur vient bien de là-dedans:
    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
    06-26 14:28:57.192: D/AndroidRuntime(12446): Shutting down VM
    06-26 14:28:57.192: W/dalvikvm(12446): threadid=1: thread exiting with uncaught exception (group=0x40f56ac8)
    06-26 14:28:57.192: E/AndroidRuntime(12446): FATAL EXCEPTION: main
    06-26 14:28:57.192: E/AndroidRuntime(12446): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.test/com.example.test.MainActivity}: java.lang.NullPointerException
    06-26 14:28:57.192: E/AndroidRuntime(12446): 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2249)
    06-26 14:28:57.192: E/AndroidRuntime(12446): 	at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2299)
    06-26 14:28:57.192: E/AndroidRuntime(12446): 	at android.app.ActivityThread.access$700(ActivityThread.java:154)
    06-26 14:28:57.192: E/AndroidRuntime(12446): 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1284)
    06-26 14:28:57.192: E/AndroidRuntime(12446): 	at android.os.Handler.dispatchMessage(Handler.java:99)
    06-26 14:28:57.192: E/AndroidRuntime(12446): 	at android.os.Looper.loop(Looper.java:137)
    06-26 14:28:57.192: E/AndroidRuntime(12446): 	at android.app.ActivityThread.main(ActivityThread.java:5306)
    06-26 14:28:57.192: E/AndroidRuntime(12446): 	at java.lang.reflect.Method.invokeNative(Native Method)
    06-26 14:28:57.192: E/AndroidRuntime(12446): 	at java.lang.reflect.Method.invoke(Method.java:511)
    06-26 14:28:57.192: E/AndroidRuntime(12446): 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102)
    06-26 14:28:57.192: E/AndroidRuntime(12446): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869)
    06-26 14:28:57.192: E/AndroidRuntime(12446): 	at dalvik.system.NativeStart.main(Native Method)
    06-26 14:28:57.192: E/AndroidRuntime(12446): Caused by: java.lang.NullPointerException
    06-26 14:28:57.192: E/AndroidRuntime(12446): 	at com.example.test.MainActivity.onCreate(MainActivity.java:51)
    06-26 14:28:57.192: E/AndroidRuntime(12446): 	at android.app.Activity.performCreate(Activity.java:5255)
    06-26 14:28:57.192: E/AndroidRuntime(12446): 	at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1097)
    06-26 14:28:57.192: E/AndroidRuntime(12446): 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2213)
    06-26 14:28:57.192: E/AndroidRuntime(12446): 	... 11 more
    06-26 14:29:17.263: I/Process(12446): Sending signal. PID: 12446 SIG: 9
    Du coup je vois où est l'erreur mais je ne sais pas ce qu'est "java.lang.NullPointerException".... Quelqu'un pour m'aider please ? Merci d'avance!

    EDIT: j'ai essayé ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Button btn = (Button) findViewById(R.id.homepage);
            btn.setOnClickListener(new OnClickListener() {
                public void onClick(View v) {
                    Intent myWebLink = new Intent(android.content.Intent.ACTION_VIEW);
                    myWebLink.setData(Uri.parse("http://www.homepageazerty.org"));
                        startActivity(myWebLink);
                 }
            });
    encore une fois l'appli s'arrête, a priori c'est dû au btn.setOnClickListener(new OnClickListener() {
    des idées sur ce qu'il faut modifier??

  2. #2
    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
    Tu ne mets pas tout le code, donc difficile de dire exactement le soucis...

    Par contre l'exception est simple est claire:

    06-26 14:28:57.192: E/AndroidRuntime(12446): Caused by: java.lang.NullPointerException
    06-26 14:28:57.192: E/AndroidRuntime(12446): at com.example.test.MainActivity.onCreate(MainActivity.java:51)
    Ligne 51 du fichier MainActivity.java (dans la fonction onCreate) il y a un déréférencement d'un objet (appel d'une fonction, lecture d'une valeur membre) dont la référence est nulle.

    Dans le code donnée, la seule partie qui correspond à ce problème est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    homepageButton.setOnClickListener(new View.OnClickListener()
    Ce qui voudrait dire que homepageButton est null... reste à savoir pourquoi
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2013
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2013
    Messages : 25
    Points : 12
    Points
    12
    Par défaut
    Ok j'ai compris le problème mais comme tu l'as dit il reste à savoir pourquoi... Je te mets mon code complet du coup.
    voici les fichiers XML pour la page comprenant le bouton homepage et celle du footer au cas où:
    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
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@drawable/background" >
     
        <!-- Footer aligned to bottom -->
     
        <include
            android:id="@+id/footer"
            android:layout_height="wrap_content"
            layout="@layout/footer" />
     
        <!-- Content below header and above footer -->
     
        <RelativeLayout
            android:id="@+id/content"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_above="@id/footer" >
     
            <Button
                android:id="@+id/news"
                android:layout_width="150dp"
                android:layout_height="wrap_content"
                android:layout_centerHorizontal="true"
                android:layout_below="@+id/anleitung"
                android:layout_marginTop="20dp"
                android:text="@string/news"
                android:background="#69D1B2"
                android:textColor="#FEFEFE" />
     
            <Button
                android:id="@+id/homepage"
                android:layout_width="150dp"
                android:layout_height="wrap_content"
                android:layout_centerHorizontal="true"
                android:layout_below="@+id/news"
                android:layout_marginTop="20dp"
                android:text="@string/homepage"
                android:background="#69D1B2"
                android:textColor="#FEFEFE" />
     
            <Button
                android:id="@+id/feedback"
                android:layout_width="150dp"
                android:layout_height="wrap_content"
                android:layout_centerHorizontal="true"
                android:layout_below="@+id/homepage"
                android:layout_marginTop="20dp"
                android:text="@string/feedback"
                android:background="#69D1B2"
                android:textColor="#FEFEFE" />
     
            <Button
                android:id="@+id/anleitung"
                android:layout_width="150dp"
                android:layout_height="wrap_content"
                android:layout_alignLeft="@+id/news"
                android:layout_alignParentTop="true"
                android:layout_marginTop="25dp"
                android:background="#69D1B2"
                android:text="@string/anleitung"
                android:textColor="#FEFEFE" />
     
            <Button
                android:id="@+id/contact"
                android:layout_width="150dp"
                android:layout_height="wrap_content"
                android:layout_alignLeft="@+id/feedback"
                android:layout_below="@+id/feedback"
                android:layout_marginTop="35dp"
                android:background="#69D1B2"
                android:text="@string/contact"
                android:textColor="#FEFEFE" />
     
        </RelativeLayout>
     
    </RelativeLayout>
    footer:
    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
    52
    53
    54
    55
    56
    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
       	android:id="@+id/footer"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:background="#69D1B2" >
     
        <Button
            android:id="@+id/about"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_centerVertical="true"
            android:background="@drawable/ic_action_about" />
     
        <Button
            android:id="@+id/person"
            style="?android:attr/buttonStyleSmall"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignBaseline="@+id/about"
            android:layout_alignBottom="@+id/about"
            android:layout_alignLeft="@+id/about"
            android:layout_marginLeft="63dp"
            android:background="@drawable/ic_action_person"/>
     
        <Button
            android:id="@+id/call"
            style="?android:attr/buttonStyleSmall"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:layout_alignParentTop="true"
            android:background="@drawable/ic_action_call" />
     
        <Button
            android:id="@+id/back"
            style="?android:attr/buttonStyleSmall"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:layout_toLeftOf="@+id/call"
            android:background="@drawable/ic_action_previous_item" />
     
        <Button
            android:id="@+id/home"
            style="?android:attr/buttonStyleSmall"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:layout_centerHorizontal="true"
            android:textColor="#FEFEFE"
            android:text="@string/home" />
     
    </RelativeLayout>
    et le code en java:
    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
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    package com.example.test;
     
    import android.app.Activity;
    import android.content.Intent;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;
     
    public class AboutActivity extends Activity {
    	@Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_about);
     
            final Button anleitungButton = (Button) findViewById(R.id.anleitung);
            anleitungButton.setOnClickListener(new View.OnClickListener() {
     
            @Override
            public void onClick(View v) {
          	Intent intent = new Intent(AboutActivity.this, AnleitungActivity.class);
          	startActivity(intent);
          	}
          });
            final Button loginButton = (Button) findViewById(R.id.contact);
            loginButton.setOnClickListener(new View.OnClickListener() {
     
            @Override
            public void onClick(View v) {
          	Intent intent = new Intent(AboutActivity.this, ContactActivity.class);
          	startActivity(intent);
          	}
          });
     
            final Button homeButton = (Button) findViewById(R.id.home);
            homeButton.setOnClickListener(new View.OnClickListener() {
     
            @Override
            public void onClick(View v) {
          	Intent intent = new Intent(AboutActivity.this, MainActivity.class);
          	startActivity(intent);
          	}
          });
     
            final Button backButton = (Button) findViewById(R.id.back);
            backButton.setOnClickListener(new View.OnClickListener() {
     
            public void onClick(View v){
            	AboutActivity.this.finish();
            }
        });   
            final Button aboutButton = (Button) findViewById(R.id.person);
            aboutButton.setOnClickListener(new View.OnClickListener() {
     
            public void onClick(View v) {
          	Intent intent = new Intent(AboutActivity.this, DatasActivity.class);
          	startActivity(intent);
          	}
          });
     
            final Button homepageButton = (Button) findViewById(R.id.homepage);
            homepageButton.setOnClickListener(new View.OnClickListener() {
     
            @Override
            public void onClick(View v) {
            String url = "https://www.azerty.com";
          	Intent intent = new Intent(Intent.ACTION_VIEW);
          	intent.setData(Uri.parse(url));
          	startActivity(intent);
          	}
          });
    }}
    J'ajouterai que dans le fichier R.Java j'ai ça pour le bouton homepage:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     public static final int homepage=0x7f0a001a;
    Ca à un rapport ou pas? Merci pour ton aide!

  4. #4
    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
    Je vois surtout pas de @+id/homepage dans le layout ....
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2013
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2013
    Messages : 25
    Points : 12
    Points
    12
    Par défaut
    Euh si il y est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <Button
                android:id="@+id/homepage"
                android:layout_width="150dp"
                android:layout_height="wrap_content"
                android:layout_centerHorizontal="true"
                android:layout_below="@+id/news"
                android:layout_marginTop="20dp"
                android:text="@string/homepage"
                android:background="#69D1B2"
                android:textColor="#FEFEFE" />
    c'est le deuxième bouton dans le relative layout, donc ça vient pas de là

  6. #6
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2013
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2013
    Messages : 25
    Points : 12
    Points
    12
    Par défaut
    Alors là grand mystère: j'ai effacé le bout de code du fameux bouton homepage et je l'ai recopié à nouveau sans rien changer et ça fonctionne ... enfin!
    Merci quand même

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

Discussions similaires

  1. [SP-2010] Infopath 2010 : ouvrir une url lors du clic sur un bouton
    Par kcizth dans le forum SharePoint
    Réponses: 1
    Dernier message: 27/06/2013, 13h20
  2. Réponses: 0
    Dernier message: 14/02/2013, 03h45
  3. Créer un lien URL sur un bouton
    Par zoub0 dans le forum Composants graphiques
    Réponses: 1
    Dernier message: 07/04/2012, 02h39
  4. lien vers une URL sur un bouton
    Par Kaluch dans le forum ActionScript 3
    Réponses: 0
    Dernier message: 25/05/2009, 23h48
  5. [FLASH MX2004] Créer lien url sur bouton
    Par coconut1 dans le forum Flash
    Réponses: 4
    Dernier message: 24/05/2005, 11h08

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