簡體   English   中英

如何連接 2 個 onActivityResult?

[英]How to connect 2 onActivityResult?

我在添加 Facebook 身份驗證時遇到問題,因為我也在使用 Google 身份驗證,這就是我出錯的原因

         public class SignUpActivity extends AppCompatActivity {
                callbackManager.onActivityResult(requestCode, resultCode, data);
                super.onActivityResult(requestCode, resultCode, data);
            //Google
            @Override
            public void onActivityResult(int requestCode, int resultCode, Intent data) {
                super.onActivityResult(requestCode, resultCode, data);

                // Result returned from launching the Intent from GoogleSignInApi.getSignInIntent(...);
                if (requestCode == RC_SIGN_IN) {
                    Task<GoogleSignInAccount> task = GoogleSignIn.getSignedInAccountFromIntent(data);
                    try {
                        // Google Sign In was successful, authenticate with Firebase
                        GoogleSignInAccount account = task.getResult(ApiException.class);
                        firebaseAuthWithGoogle(account);
                    } catch (ApiException e) {
                        // Google Sign In failed, update UI appropriately
                        Log.w(TAG, "Google sign in failed", e);
                        // ...
                    }
                }
            }

            //and Facebook
            @Override
            protected void onActivityResult(int requestCode, int resultCode, Intent data) {
            callbackManager.onActivityResult(requestCode, resultCode, data);
            super.onActivityResult(requestCode, resultCode, data);
    }

你怎么看我有兩個 onActivityResult 方法。 有什么方法可以連接它們並消除錯誤嗎? 這就是我的錯誤

方法 onActivityResult(int,int,Intent) 已在類 SignUpActivity 中定義

它只是現有兩種相同方法的交流。 謝謝。

onActivityResult是一個 Android 方法,它接收你從startActivityForResult開始的活動的結果,並返回你提供的 request_code int。

解決方案是在startActivityForResult使用不同的 REQUEST_CODES ,因此您可以在onActivityResult進行比較

喜歡:

private static final int FACEBOOK_REQUEST_CODE = 1;
private static final int GOOGLE_REQUEST_CODE = 0;

startActivityForResult(googleLoginIntent, GOOGLE_REQUEST_CODE)
startActivityForResult(facebookLoginIntent, FACEBOOK_REQUEST_CODE)

public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == GOOGLE_REQUEST_CODE) {
        //do the code for google result
    } else if (requestCode == FACEBOOK_REQUEST_CODE) {
        // do the code for facebook result
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM