java - 从类内部调用 Activity

标签 java android firebase firebase-realtime-database android-activity

我需要从单独的类内部调用 Activity ,该类包含 Firebase 的 onDataChange 方法。

因此,我可以在 Firebase 传递我想要的数据后调用 Activity。我只是无法从我的类中插入 IntentstartActivitygetBaseContext 方法。

我的类(class)是 myUser:

public class myUser{
    private static ArrayList<String> userData;

    public static ArrayList<String> getUserData() {
        return userData;
    }
     ...
}

我的代码(在 myUser 内部)是:

    public static void setUserData(FirebaseAuth mAuth) {
    FirebaseDatabase database = FirebaseDatabase.getInstance();
    userData = new ArrayList<>();
    String uID;

    uID = mAuth.getCurrentUser().getUid();
    DatabaseReference userRef = database.getReference("users/" + uID);

    userRef.addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
            String cpf, email, name, tel;
            Boolean depend;
            int uType;

            cpf = dataSnapshot.child("cpf").getValue(String.class);
            email = dataSnapshot.child("email").getValue(String.class);
            name = dataSnapshot.child("name").getValue(String.class);
            tel = dataSnapshot.child("tel").getValue(String.class);
            depend = dataSnapshot.child("depend").getValue(Boolean.class);
            uType = dataSnapshot.child("uType").getValue(Integer.class);

            userData.add(name);
            userData.add(email);
            userData.add(cpf);
            userData.add(tel);
            userData.add(depend.toString());
            userData.add(String.valueOf(uType));

           //HERE IS WHERE I NEED TO CALL THE ACTIVITY, AFTER GET ALL DATA

        }

        @Override
        public void onCancelled(@NonNull DatabaseError databaseError) {

        }
    });
}

我如何调用或实例化我的类myUser并不重要。该代码正在运行,但它返回错误,因为 onDataChange (在 myUser 类内)是在 Activity 打开后运行的。因此,ArrayList 返回 null 或空。

这就是为什么我需要从我的类myUser的方法setUserData内部调用我的Activity

我尝试用许多其他类扩展我的类myUser,但没有成功。

最佳答案

更改此方法

public static void setUserData(FirebaseAuth mAuth) {

public static void setUserData(Context context, FirebaseAuth mAuth) {

然后从您的 Activity 类中调用它,如下所示

setUserData(this, mAuth);

这样您就可以在 myUser 类中使用 Activity 上下文。

关于java - 从类内部调用 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59920656/

相关文章:

c# - 如何在Android 项目中使用MySql.Data.dll?

firebase - 如何在网络应用上使用 Google AutoML?

javascript - 无法加载 firebase(重定向错误)

javascript - 在 Cloud Functions for Firebase 中启用 CORS

java - Jython 和 Java 嵌套类

c# - 通过 MvvmCross View 模型更改 CardView 背景颜色

java - 在具有重复条目的数组中查找具有最大(全局)值的对象

java - Android 字符串中的 Textview 正则表达式?

java - Hibernate:从部分解析/翻译 HQL 以获取对类别名、类名

java - 将信息从 Java 发送到数据库的安全方法?