アクティビティクラスで正常に機能したカスタムインターフェイスを使用してFacebookにログインしようとしています。フラグメントでも同じことをしなければなりません。しかし、コールバックは実行されていません。 FragmentのOnActivityResultにCallbackResultを追加することはできませんか?
はい、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を再度呼び出します。
このコードをアクティビティ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);
}
フラグメント内に1行追加するだけです
fbLoginButton.setFragment(this);
あなたはでコントロールを取得します
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {}