首页 > 解决方案 > Android Studio 如何在静态方法中引用活动本身

问题描述

我正在使用 Firebase 的“ createUserWithEmailAndPassword ”方法,我需要向它发送上下文(活动)。

但这是在静态方法中(必须这样,因为我使用的是片段。)。因此,我收集了 Fragment 中的所有数据并发送到 MainActivity 中的“registerUser”方法。

所以,因为这个方法(registerUser)是一个静态模式,MainActivity 没有被Firebase的“ createUser... ”引用。

我尝试使用“This”关键字。我尝试使用“new”关键字,例如:

MainActivity main = new MainActivity();

但是两者都不起作用并且使用“new”关键字,甚至没有编译代码。

有人帮我吗?

下图显示了 MainActivity 中的代码。 在此处输入图像描述

标签: javaandroidfirebasefirebase-authentication

解决方案


根据定义,静态方法不会在封闭类实例的上下文中运行。没有this实例可以参考。如果需要从静态方法引用另一个类实例,则需要将其作为参数传递给函数。

public static String cadUsario(MainActivity activity, Usario pUsario) {
    // now use activity where needed
}

也考虑完全不使用静态方法。在这里可能不合适。


推荐阅读