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 :

Mon objet est "null"


Sujet :

Android

  1. #1
    Membre à l'essai Avatar de shiro-kurogane
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2016
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2016
    Messages : 31
    Points : 20
    Points
    20
    Par défaut Mon objet est "null"
    Bonjour à tous !

    Je sollicite votre aide car depuis quelques jours j'ai une erreur qui me ralentit dans mon développement alors que c'est une erreur qui pourtant est récurrente mais celle là je n'arrive pas à la solutionner.

    Je voudrais implémenter une transition entre deux fragments.

    Voilà la partie du code dans lequel il y a l'erreur.

    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
     
    @Override
        public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
            super.onViewCreated(view, savedInstanceState);
     
            final ImageView imageView = (ImageView) view.findViewById(R.id.avatar);
     
            Button button = (Button) view.findViewById(R.id.imageButton8);
            button.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    CardDetailFragment simpleFragmentB = CardDetailFragment.newInstance();
                    getFragmentManager()
                            .beginTransaction()
                            .addSharedElement(imageView, ViewCompat.getTransitionName(imageView))
                            .addToBackStack(TAG)
                            .replace(R.id.content, simpleFragmentB)
                            .commit();
                }
            });
        }
    La ligne qui fait "crashé" mon code c'est celle là

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    button.setOnClickListener(new View.OnClickListener()
    Je vous cite l'erreur :

    java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Button.setOnClickListener(android.view.View$OnClickListener)' on a null object reference
    at com.coalescence.siiyou.newui.CardListFragment.onViewCreated



    J'ai vérifier dans mon fichier .xml l'id du bouton

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <Button
                            android:id="@+id/imageButton8"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_weight="1"
                            tools:text="test" />
    J'ai regardé sur plusieurs forum mais aucune des solutions ou conseil donné n'a fonctionné dans mon cas.

    [par exemple : initialiser le bouton avant le setOnClickListener(), trouver le bouton avec findViewById(R.id)]

    Si il manque des informations ou ce n'est pas clair le problème, j’essaierai d'y remédier.

    je me suis basé sur ce tuto http://mikescamell.com/shared-elemen...itions-part-2/

    Je vous remercie d'avance pour les conseils, l'aide et le temps.

    Merci !

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 141
    Points : 177
    Points
    177
    Par défaut
    Tu as tracé la valeur de view ?

    Tu fais quoi dans le onCreateView de ton fragment ? As tu initialisé le layout ?

  3. #3
    Membre à l'essai Avatar de shiro-kurogane
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2016
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2016
    Messages : 31
    Points : 20
    Points
    20
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    @Nullable
        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
            RecyclerView rv = (RecyclerView) inflater.inflate(
                    R.layout.fragment_card_list, container, false);
            setupRecyclerView(rv);
            return rv;
        }
    J’appelle un RecyclerView pour dynamiser ma page. Je ne vais pas avoir une carte mais plusieurs c'est à dire je souhaite que si j'ai 1 carte elle m'affiche une carte, si j'ai 3 cartes elle m'affiche 3 cartes etc.

    Cependant je n'ai pas tracé la valeur de view, je ne sais pas comment le faire. J'irai voir un tutoriel pour le voir et je posterai la valeur. À moins que cela ne me mette la puce à l'oreille et que je parvienne à résoudre mon problème

  4. #4
    Membre à l'essai Avatar de shiro-kurogane
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2016
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2016
    Messages : 31
    Points : 20
    Points
    20
    Par défaut
    Voilà ce que j'obtiens comme résultat à l'intérieur de mes différentes variables.

    Nom : co.PNG
Affichages : 115
Taille : 47,1 Ko

  5. #5
    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
    Peux-tu nous montrer le fichier "fragment_card_list" s'il te plaît ?
    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

  6. #6
    Membre à l'essai Avatar de shiro-kurogane
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2016
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2016
    Messages : 31
    Points : 20
    Points
    20
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <?xml version="1.0" encoding="utf-8"?>
    <android.support.v7.widget.RecyclerView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/recyclerview"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/thumb_bg" />
    c'est tout mon fichier.

  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
    En ce cas, où se trouve le bouton que tu tentes d'inflate ?

    Si je déroule le code :
    - je demande à ce que soit créé le layout correspondant à fragment_card_list, celui-ci est vide et ne contient qu'une image de background
    - à partir de cette vue (fragment_card_list), je demande à inflate le bouton imageButton8
    - ça plante

    Je dirai : c'est normal.
    Le bouton que tu souhaites inflate n'appartient pas à la vue que tu as, il n'est donc pas inflate, et est null. Tu tentes de l'utiliser, donc te retrouves avec une NPE.

    Bilan : construits bien ton layout, pour que tu puisses l'utiliser.

    Bonus : donne des noms explicite à tes variables et tes items. "imageButton8" n'est pas parlant. Prend 2 semaines de vacances sans toucher à ton projet, puis reviens-y. Tu te maudiras vu que tu devras repartir "de zéro" au niveau de la connaissance de l'appli.
    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 Avatar de shiro-kurogane
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2016
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2016
    Messages : 31
    Points : 20
    Points
    20
    Par défaut
    Ok merci pour les conseils et l'aide apporté, je vais faire les différentes modifications.

  9. #9
    Membre à l'essai Avatar de shiro-kurogane
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2016
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2016
    Messages : 31
    Points : 20
    Points
    20
    Par défaut
    Effectivement le problème était qu'il ne savait pas ce qu'était "imageButton8" par rapport au recyclerview.

    Merci pour votre aide et votre temps !

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

Discussions similaires

  1. Mon object est toujours null
    Par rahmoucha dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 20/12/2010, 14h25
  2. CLSID de mon objet com retourne null
    Par 3aychoucha dans le forum MFC
    Réponses: 1
    Dernier message: 15/11/2010, 14h52
  3. [POO] mon objet est "indefini"
    Par Space23 dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 21/07/2008, 03h39

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