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 :

Action d'une activity depuis une autre activity


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    757
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 757
    Par défaut Action d'une activity depuis une autre activity
    Bonsoir,

    J'essaye de faire "interagir" plusieurs activity, mais j'obtiens à chaque fois un NullPointerException ...

    Voila comment se compose mon projet :

    Une activity principale A
    Un bouton me permet de lancer l'activity B

    Une activity B (qui est une listView (android.R.layout.simple_list_item_1))
    Lorsque je clique sur un élément, je lance une autre activity C

    Une activity C (qui est une listView perso)
    Lorsque je clique sur un élément, j'aimerais modifier l'état d'un objet contenu dans l'activity A, puis retourner à l'activity A

    Mais comme je viens de le dire plus haut, j'obtiens à chaque fois un NullPointerException, lorsque je veux modifier l'objet contenu dans A.
    Comment se fait-il qu'il ne soit plus accessible ?






    Edit :
    Apparemment, le problème proviendrais du surfaceView contenu dans l'activity A qui est "indisponible". Or, puisque je veux modifier cet objet, je veux le "rafraichir" avec un onDraw, et c'est là que ça pose problème..
    Idée du pourquoi et du comment ?

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Novembre 2010
    Messages : 57
    Par défaut
    Pour appeler l'acvitity B de Class Activity_A

    dans class Activity_A

    Button.setonclick...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Intent intent = new Intent(Activity_A.this,Activity_B.class);
    startActivity(intent);
    Activity_A et Activity_B sont des Class Java (Activity_A.java, Activity_B.java)

    manifest xml
    if faut ajouter

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <activity android:name=".Activity_A" android:label="@string/app_name">
                    <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
                    <category android:name="android.intent.category.LAUNCHER" />
                    </intent-filter>
            </activity>
    	<activity android:name=".Activity_B"></activity>
    si 2 class de Activitys dans les 2 packages differents, il faut ecrire : .packageB.Activity_B

  3. #3
    Membre éclairé
    Inscrit en
    Octobre 2008
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 47
    Par défaut
    Bonjour,
    C'est normal que tu aies un NullPointerException vu que tu essayes de modifier un objet de l'activity A alors que celle ci n'est pas encore lancée.
    A partir de C, tu peux lancer A en lui passant les paramètres nécessaires aux modifications . Sinon tu peux utiliser des variables static dans ta classe A.

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    757
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 757
    Par défaut
    Vous ne m'avez pas bien compris, ou alors je me suis mal exprimé :

    Mon Activity A est mon activité principale, c'est à dire que quand le programme se lance, c'est l'Activity A qui démarre.
    Puis je clique sur un Bouton de l'Activity A pour lancer l'Activity B (cela fonctionne déjà)
    Puis l'Activity B se lance.
    Puis je clique sur un Bouton de l'Activity B pour lancer l'Activity C (cela fonctionne déjà aussi)
    Puis l'Activity C se lance.
    Puis je clique sur un Bouton de l'Activity C pour modifier le surfaceView contenu dans l'Activity A, puis pour retourner à cette Activity A.

    Mais la modification fait planter l'application lors de l'appel à la fonction onDraw() du surfaceView.

    Pour résumer, voila un petit dessin :



  5. #5
    Membre éclairé
    Inscrit en
    Octobre 2008
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 47
    Par défaut
    Je t'ai bien compris
    Pourrait tu préciser comment tu lances tes activity. J'avais supposé que tu faisais un truc du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Intent i = new intent(A.this,B.class);
    startActivity(i);
    Si c'est le cas il est tout à fait normal que tu aies cette erreur.

  6. #6
    Membre émérite
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    757
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 757
    Par défaut
    Oui en effet je fais ainsi :

    Depuis l'activity A (principale et lancée au démarrage) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    			Intent i = new Intent(this,B.class);
    			this.startActivity(i);
    Depuis l'activity B :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Intent i0 = new Intent(this,C.class);
    			this.startActivity(i0);
    			finish();
    Depuis l'activity C :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    //(modifications sur l'objet de Activity A)
    finish();
    Mais pourquoi ai-je donc cette erreur ?

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 09/10/2015, 17h16
  2. Réponses: 1
    Dernier message: 07/12/2014, 17h36
  3. [AC-2007] Copier une table depuis une base vers une autre
    Par Triton972 dans le forum VBA Access
    Réponses: 3
    Dernier message: 01/11/2009, 19h27
  4. Réponses: 2
    Dernier message: 26/11/2007, 12h22
  5. Réponses: 3
    Dernier message: 16/01/2006, 16h02

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