gpt4 book ai didi

java - 从解析中检索数组

转载 作者:行者123 更新时间:2023-12-01 11:20:55 26 4
gpt4 key购买 nike

在我的 endWorkout.java 文件中,我使用以下逻辑将数据保存到 Parse 数据库中:

// Parse Storage
ParseObject testObject = new ParseObject("TestOne");
testObject.put("Device", ParseInstallation.getCurrentInstallation());
testObject.put("Reps", inputList);
testObject.saveInBackground();

我首先存储我的设备 ID 以用于身份验证,然后存储 inputList,它是一个整数 ArrayList。

在我的Parse数据库中,数据已正确保存,如下图:

enter image description here

现在,在我的 MainActivity.java 中,我想检索单个设备的 Parse 数据库的 Reps 字段中的所有数据。例如,设备 yhmrKgokfS 在 Parse 数据库中有 6 个数组,我想顺序检索每个数组以显示在屏幕上的 ListView 中。

这是我尝试使用的逻辑:

List<ParseObject> importList = new ArrayList<ParseObject>();

//parse import list
ParseQuery<ParseObject> query = ParseQuery.getQuery("TestOne");
query.whereEqualTo("Device", ParseInstallation.getCurrentInstallation());
query.findInBackground(new FindCallback<ParseObject>() {
public void done(List<ParseObject> repList, ParseException e) {
if (e == null) {
Log.d("Reps", "Retrieved " + repList.size() + " reps");
} else {
Log.d("Reps", "Error: " + e.getMessage());
}
}
});

importList = repList;

我首先要确保从当前设备导入,因此我需要检查 Device 字段是否与 ParseInstallation.getCurrentInstallation() 匹配。然后我想继续获取第一个 Reps 数组。然而最后一行 importList = repList;不起作用。

我怎样才能实现我想要做的事情?

最佳答案

query.findInBackground 以异步方式工作。换句话说,您设置 importList 的行将在 query.findInBackground 行之后执行。但是,query.findInBackground 将进行需要时间的网络调用。因此,如果您想在准备好时使用repList,则必须在使用网络调用完成的done方法中使用它。希望这会有所帮助。

问候。

关于java - 从解析中检索数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31235090/

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