2016-05-18 13 views
0

Ich habe facebook sdk von Fragment mit Kontext von Fragment initialisiert. Wenn ich mit facebook eingeloggt bin, gibt es Callback zu Activity's Methode von "onActivityResult", aber grundsätzlich möchte ich, dass es die Methode von "onActivityResult" fragmentiert. Dies ist nur eine Frage bezüglich Facebook SDK. Ich habe dieses Problem gelöst, indem ich das aktuell geöffnete Fragment verwaltet habe. Ich habe nichts über dieses Ding gefunden. Bitte antworte. Verfahren zur Initialisierung Facebook SDK ::Warum Facebook SDK gibt Ergebnis zu Aktivität?

FacebookSdk.sdkInitialize(getContext()); 
    loginButton = new LoginButton(getContext()); 
    callbackManager = CallbackManager.Factory.create(); 
    loginButton.setReadPermissions(Arrays.asList("public_profile", "email", "user_friends", "user_about_me")); 
    loginButton.registerCallback(callbackManager, new RegisterFbLoginResCallBack(getActContext())); 

Antwort

0

Facebook SDK ruft onActivityResults so, dass Sie die Ergebnisdaten an die SDK passieren können. Auf diese Weise versteht Facebook SDK, wie ihre Aktivität endete (war ein Login-Erfolg, Benutzeraccellation usw.).

Von jedem Fragment können Sie die Aktivität des Fragments abrufen, indem Sie getActivity() aufrufen.

0

Grundsätzlich in Android => alle Event-Handler in Aktivität, und danach umgehen Sie es zu fragmentieren. Es geht nicht nur um das FB SDK-Fragment. Es geht um alle Fragmente. Und nur wenn Sie eine Art von OnClickListner in Ihrem Fragment setzen -> für diesen Event-Listener erhalten Sie Antwort in Ihrem Fragment.

0

Wenn Sie besorgt sind, wie Sie diese Informationen weitergeben können, ist es möglicherweise nicht so schwer wie Sie denken. Zum Beispiel:

Tätigkeit ----> onActivityResult() {einige Logik} Fragment ----> Sie etwas mit Antwort von Aktivität

Wenn Sie MVP verwenden wollen, können Sie Ihre Presenter-Schnittstelle eine Methode doSomethingWithFBResponse(), die erhält, was Sie von Ihrer Aktivität benötigen. An diesem Punkt fahren Sie einfach mit der Logik fort, die Sie als Callback in Ihrem Moderator ausführen wollten.