gpt4 book ai didi

java - 无法从类方法设置 Activity 的变量

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

注意:我对术语的掌握不是很好,因为这是我第一次接触面向对象编程和 android studio。

在 android studio 中,我为 JSON 获取任务创建了一个类。(我没有在后台覆盖中包含 do )。

public class jsonTasks extends AsyncTask<String, String, String> {


public interface AsyncResponse {
void processFinish(String output);
}

private AsyncResponse delegate = null;

jsonTasks(AsyncResponse delegate){
this.delegate = delegate;
}

@Override
protected void onPostExecute(String result) {
delegate.processFinish(result);
}

在我现在的 Activity 中:

public class activity extends Activity {
// in here I've declared the string variable
String valuableInfo;

// FIRST TASK
jsonTasks asyncTask = new jsonTasks(new jsonTasks.AsyncResponse() {

@Override
public void processFinish(String output) {
String TAG = activity.class.getSimpleName();
JSONObject info;

//i do stuff with the json here
//i set the textboxes normally
txtSumName.setText(sumInfo.getString("name"));

//but setting the string valuableInfo is not working
valuableInfo = "info I took from json operation"

});
// and here I execute
asyncTask.execute("url");

// SECOND TASK
jsonTasks asyncTask2 = new .... {
.................
}
asyncTask2.execute("https://example.com/" + valuableInfo);
}

我想使用该变量的地方是在另一个“asyncTask2”中,该变量使用 URL 上的 ValueInfo 来继续获取。

当我运行第二个“asyncTask2”时,该变量始终为空。

最佳答案

AsyncTask 异步执行操作。这意味着您不会立即获得结果,必须等到结果完成才能使用 valueableInfo。有一个可以重写的方法,称为onPostExecute。这将在您的任务完成且信息可用后触发。在这里执行你的第二个任务,此时它不会为空。

您也可以合并这两个任务吗?

关于java - 无法从类方法设置 Activity 的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47637627/

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