gpt4 book ai didi

java - 解析 findInBackground 不添加到全局数组列表?

转载 作者:行者123 更新时间:2023-11-29 06:31:00 25 4
gpt4 key购买 nike

这是我的代码 fragment ,对名称进行了少量修改。

String[] items;
ArrayList<String>tempListItems;

public void initList() {
if(query()){
items = new String[tempListItems.size()];
items = tempListItems.toArray(items);
Arrays.sort(items);

Log.d("HSearch - initList", "Generate Clean List");
Log.d("initList - temp size", Integer.toString(tempListItems.size()));
Log.d("initList - items size", Integer.toString(items.length));
}
}

private boolean query() {
tempListItems = new ArrayList<String>();
ParseQuery<ParseObject> query = ParseQuery.getQuery("Table");
query.orderByAscending("name");
query.findInBackground(new FindCallback<ParseObject>() {
@Override
public void done(List<ParseObject> list, com.parse.ParseException e) {
if (e == null) {
for (ParseObject name : list) {
tempListItems.add(name.getString("name"));
}
} else {
Log.d("score", "Error: " + e.getMessage());
}
}
});
return true;
}

我的问题出在 query() 中,如果我在 done() 之后检查 tempListItems 的大小,则大小不为空。但是,一旦 query() 完成并返回到 initList(),如果我再次检查 tempListItems,它是空的。

done() 是 query() 中的一个方法。我忘记了它的技术术语!

我不确定如何确保在 query() 和 done() 返回后保留对 tempListItems 的更改。

最佳答案

String[] items;
final ArrayList<String>tempListItems;
{
tempListItems= new ArrayList<>();
}

public void initList() {
if(query()){
items = new String[tempListItems.size()];
items = tempListItems.toArray(items);
Arrays.sort(items);

Log.d("HSearch - initList", "Generate Clean List");
Log.d("initList - temp size", Integer.toString(tempListItems.size()));
Log.d("initList - items size", Integer.toString(items.length));
}
}

private boolean query() {
ParseQuery<ParseObject> query = ParseQuery.getQuery("Table");
query.orderByAscending("name");
query.findInBackground(new FindCallback<ParseObject>() {
@Override
public void done(List<ParseObject> list, com.parse.ParseException e) {
if (e == null) {
for (ParseObject name : list) {
tempListItems.add(name.getString("name"));
}
} else {
Log.d("score", "Error: " + e.getMessage());
}
}
});
return true;
}

Changed your code, this should work, as It worked for me.

Make your methods public to use in other classes.

关于java - 解析 findInBackground 不添加到全局数组列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33886450/

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