我已经创建了Fragment,当单击一个按钮时,会弹出如对话框alter view的弹出窗口。在该视图中,包括google登录按钮。当我连接到Firebase并在startActivityForResult之后继续执行时,我需要重写onActivityResult方法。但是弹出窗口对应的类扩展了另一个Dialog类,并且不能重写onActivityResult方法。覆盖时显示方法不会覆盖其父类的方法错误。如何解决这个问题。以及如何实现我的Firebase登录。
谢谢。这是我的代码
public class DialogGoogle extends Dialog { private Activity activity; @BindView(R.id.btn_google)
LinearLayout btnGoogle; private GoogleSignInClient mGoogleSignInClient;
private FirebaseAuth mAuth;
private int RC_SIGN_IN = 1; public DialogGoogle(Activity a, boolean isTab, int width, int height) {
super(a, R.style.DialogTheme);
this.activity = a;
this.isTab = isTab;
this.windowWidth = width;
this.windowHeight = height;}
在onCreate方法中
// Initialize Firebase Auth
mAuth = FirebaseAuth.getInstance();
// Configure Google Sign In
GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestIdToken(this.activity.getString(R.string.default_web_client_id))
.requestEmail()
.build();
mGoogleSignInClient = GoogleSignIn.getClient(this.activity,gso);
我创建了某种方法之后
public void signInGoogle() {Intent signInIntent = mGoogleSignInClient.getSignInIntent();
startActivityForResult(signInIntent, RC_SIGN_IN);}
在startActivityForResult()之后,我需要获取结果,我使用了onActivityResult(),但无法覆盖该DialogGoogle类中的方法。我通常在按钮单击中运行signInGoogle()方法
您在Activity中启动Fragments,然后在其中重写onActivityResult方法,但首先像在文档中一样开始auth:
List<AuthUI.IdpConfig> providers = Arrays.asList(
new AuthUI.IdpConfig.EmailBuilder().build(),
new AuthUI.IdpConfig.PhoneBuilder().build(),
new AuthUI.IdpConfig.GoogleBuilder().build(),
new AuthUI.IdpConfig.FacebookBuilder().build(),
new AuthUI.IdpConfig.TwitterBuilder().build());
// Create and launch sign-in intent
startActivityForResult(
AuthUI.getInstance()
.createSignInIntentBuilder()
.setAvailableProviders(providers)
.build(),
RC_SIGN_IN);
RC_SIGN_IN是一个静态字段,这是您可以检查活动是否完成的指示符。