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 :

Petit beug facebook SDK que je ne comprend pas


Sujet :

Android

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    septembre 2015
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

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

    Informations forums :
    Inscription : septembre 2015
    Messages : 77
    Points : 43
    Points
    43
    Par défaut Petit beug facebook SDK que je ne comprend pas
    Bonsoir !

    je suis entrain de créer la connexion facebook de mon application via le SDK facebook. Je suis donc la documentation, jusqu'ici pas trop de problème.

    Je viens juste d'avoir une erreur bloquante et un peu chiante que je ne sais pas du tout résoudre (étant débutant en android)

    Voici le 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
     
         com.facebook.CallbackManager callbackManager ;
     
        @Override
        protected void onCreate(Bundle savedInstanceState)  {
            super.onCreate(savedInstanceState);
     
            FacebookSdk.sdkInitialize(getApplicationContext());
     
            callbackManager = com.facebook.CallbackManager.Factory.create();
     
    /* ICI QUE CA BEUG AVEC  new com.facebook.FacebookCallback<LoginResult>() */
     
            com.facebook.login.LoginManager.getInstance().registerCallback(callbackManager, new com.facebook.FacebookCallback<LoginResult>() {
     
            });

    L'erreur : "Class 'Anonymous class derived from FacebookCalback' must either be declared abstract or implemente abstract method 'Oncancel()' in FacebookCalback"

    Alors là... je vous laisse vous en occuper, en sachant qu'il s'agit de la doc Facebook, soit je suis mauvais, soit c'est inquiétant !

  2. #2
    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 : 33
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : février 2010
    Messages : 2 180
    Points : 5 075
    Points
    5 075
    Par défaut
    Le message d'erreur te dit "attention, ta classe étend une classe abstraite mais tu n'implémentes toutes les méthodes déclarées abstraites de la mère, donc soit tu déclares abstraite ta classe, soit tu implémentes les méthodes manquantes (ici onCancel())".

    En bref : il te manque quelques méthodes à implémenter
    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

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    septembre 2015
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

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

    Informations forums :
    Inscription : septembre 2015
    Messages : 77
    Points : 43
    Points
    43
    Par défaut
    Si ce n'est pas précisé dans la doc, j'imagine que le OnCancel qu'il faut mettre est pour toute l'application ?

  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 : 33
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : février 2010
    Messages : 2 180
    Points : 5 075
    Points
    5 075
    Par défaut
    Tu es débutant en Java alors, pas juste sur Android

    En Java, une classe dite "abstraite" oblige ses filles à implémenter certaines méthodes, celles marquées "abstract" (abstraite).

    La classe "FacebookCallback" est abstraite (selon le message d'erreur, je n'ai jamais manipulé le SDK Facebook). Il est donc nécessaire d'implémenter les méthodes abstraites de celle-ci.

    Tu as plusieurs moyens de le faire :
    - passer par une classe anonyme
    - passer par une classe nommée interne
    - passer par une classe nommée externe

    Ta ligne
    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    new com.facebook.FacebookCallback<LoginResult>()
    sera modifiée comme suit (suivant le choix).

    Classe anonyme :

    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    LoginManager.getInstance().registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
                @Override
                public void onCancel() {
                    // code pour gérer le cancel ici
                }
            });

    Classe interne nommée :

    Code Java : 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
     
     
    public class MonActivity {
        ...
        public void onCreate(Bundle bundle) {
            ...
            LoginManager.getInstance().registerCallback(callbackManager, new MyFacebookCallback());
            ...
        }
     
        class MyFacebookCallback extends FacebookCallback<LoginResult> {
                @Override
                public void onCancel() {
                    // code pour gérer le cancel ici
                }
        } 
    ...
    }

    Classe externe nommée :

    Revient à extraire la classe "MyFacebookCallback" de l'exemple précédent et la mettre dans son propre fichier "MyFacebookCallback".

    Je vois, dans la doc de FB, qu'il y a deux autres méthodes : onSuccess(Object) et onError(FacebookException). Tu auras sans doute à les implémenter aussi, je pense.
    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

Discussions similaires

  1. Réponses: 5
    Dernier message: 26/11/2018, 11h50
  2. [Débutant] Message d'erreur que je ne comprends pas
    Par Le Furet dans le forum Langage
    Réponses: 2
    Dernier message: 25/02/2006, 17h37
  3. [PostGreSQL] une erreur que je ne comprends pas
    Par flo78 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 02/02/2006, 10h18
  4. [thread][methodologie]Quelque chose que je ne comprends pas!
    Par norkius dans le forum Général Java
    Réponses: 5
    Dernier message: 16/03/2005, 14h01
  5. [Rave] un message que je ne comprends pas
    Par Clotilde dans le forum Rave
    Réponses: 2
    Dernier message: 30/09/2003, 21h46

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