gpt4 book ai didi

java - 将变量传递给 Android 的 AsyncHttpResponseHandler 回调

转载 作者:太空狗 更新时间:2023-10-29 13:33:29 24 4
gpt4 key购买 nike

我正在使用 AsyncHttpResponseHandler 从 RESTful 服务收集数据。我遇到的问题是我无法在 onSuccess 回调中访问我需要的变量。

我的代码如下。

for (int i=0; i<=count; i++) {
requestItemsByCategory(context, categories.get(i), 10, new AsyncHttpResponseHandler() {
@Override
public void onSuccess(String response) {
loadItemsFromJsonString(context, response, categories.get(i));
}
});
}

上下文和类别显然在 onSuccess 中不可用。我可以创建这些全局变量,但问题是这是一个循环调用,因此 onSuccess 将被调用几次,但无法保证哪个先返回。

我是 Java 的新手。在 Objetive-C 中,您仍然可以访问代码块内匿名函数之外的变量。如果做不到,我将只需要自定义我的查询以一次拉回所有数据,然后在客户端解析它,无论如何这是一个更好的解决方案,但我想知道是否访问回调中的项目是可能的。

最佳答案

事实上,您不能在此范围内访问这些变量,但是您可以尝试通过类的实例访问它们,这段代码是:

class YourCoolActivity extends Activity {

// + getter/setter
private int index;

// The rest of the class

private void yourCoolMethod(){
for (int i=0; i<=count; i++) {
this.setIndex(categories.get(i));
requestItemsByCategory(this.getContext(), categories.get(i), 10, new AsyncHttpResponseHandler() {
@Override
public void onSuccess(String response) {
loadItemsFromJsonString(YourCoolActivity.this.getContext(), response, YourCoolActivity.this.getIndex());
}
});
}
}
}

关于java - 将变量传递给 Android 的 AsyncHttpResponseHandler 回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13096272/

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