gpt4 book ai didi

java - 如何在全局变量的回调中存储数据?

转载 作者:太空宇宙 更新时间:2023-11-04 12:42:23 24 4
gpt4 key购买 nike

我正在尝试编写一种方法来获取 firebase 数据库中当前保存的所有学生。但我无法将这些数据存储在全局变量 students 上。怎么做?我不知道如何用 OOP 的理论来解决这个范围问题。有什么好主意吗?

    private static ArrayList<StudentModel> students = new ArrayList<StudentModel>();
private Firebase mStudentsRef;

public ArrayList<StudentModel> getAll() {
mStudentsRef = new Firebase("https://firstapp.firebaseIO.com/students");
mStudentsRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
StudentModel student;
HashMap<String, String> studentDetails;
for (DataSnapshot ds : dataSnapshot.getChildren()) {
studentDetails = new HashMap<String, String>();
student = new StudentModel();
for (DataSnapshot sds : ds.getChildren())
studentDetails.put(sds.getKey(), sds.getValue().toString());
student.set_id(ds.getKey());
student.setFirstname(studentDetails.get(dbHandler.STUDENT_FIRSTNAME));
student.setLastname(studentDetails.get(dbHandler.STUDENT_LASTNAME));
student.setUsername(studentDetails.get(dbHandler.STUDENT_USERNAME));
student.setPassword(studentDetails.get(dbHandler.STUDENT_PASSWORD));
students.add(student);
}
}

@Override
public void onCancelled(FirebaseError firebaseError) {
Log.e("Student.getAll(): ", firebaseError.getMessage());
}
});
return students;
}

提前致谢!

最佳答案

您可以创建一个私有(private)方法,该方法采用 ArrayList<StudentModel>作为参数,然后您可以将学生全局变量设置为通过参数传入的数据。我希望这应该有效并且是一个干净的解决方案。

您需要另一个本地 ArrayList<StudentModel>addValueEventListener 中键入变量。我希望它是清楚的。

如果您需要示例,请告诉我

关于java - 如何在全局变量的回调中存储数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36704782/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com