web-dev-qa-db-ja.com

Facebookログインの断片android

アクティビティクラスで正常に機能したカスタムインターフェイスを使用してFacebookにログインしようとしています。フラグメントでも同じことをしなければなりません。しかし、コールバックは実行されていません。 FragmentのOnActivityResultにCallbackResultを追加することはできませんか?

15
android

はい、Facebookログインをフラグメントで実装することは可能です。実行する必要があるのは、次のようにホストアクティビティでOnActivityResultを呼び出すことだけです。

@Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        Fragment fragment = getFragmentManager().findFragmentById(R.id.your_Host_fragment_in_activity);
        fragment.onActivityResult(requestCode, resultCode, data);
    }

次に、youtフラグメントでonActivityResultを再度呼び出します。

22
Gujarat Santana

このコードをアクティビティonActivityResultに追加する必要があります。

for (Fragment fragment : getSupportFragmentManager().getFragments()) {
            //System.out.println("@#@");
            fragment.onActivityResult(requestCode, resultCode, data);
        }

そうすれば、フラグメントonActivityResultは確実に機能します。

   @Override
        public void onActivityResult(final int requestCode, final int resultCode, final Intent data) {


            callbackManager.onActivityResult(requestCode, resultCode, data);
        }
26
Shoeb Siddique

フラグメント内に1行追加するだけです

fbLoginButton.setFragment(this);

あなたはでコントロールを取得します

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {}
1
Mandeep Singh