gpt4 book ai didi

java - 我如何为 json 解析集成 loopj

转载 作者:行者123 更新时间:2023-11-29 23:26:10 25 4
gpt4 key购买 nike

这些是我的 onCreate 中的说明:

   protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

Client c = new Client();
String p=c.get();
((TextView) findViewById(R.id.textView)).setText(p);}

这是我的客户类

public class Client {

public String prova;
public String get() {

String url = "FILE_JSON_ONLINE_URL";
AsyncHttpClient client = new AsyncHttpClient();

client.get(url, null, new

JsonHttpResponseHandler() {
@Override
public void onSuccess(int statusCode, Header[] headers, JSONObject response) {
prova = response.toString();
}

@Override
public void onFailure(int statusCode, Header[] headers, String res, Throwable t) {

}
});
return prova;
}

但是我的 texview 是空的,就像命令 client.get 不起作用,有人可以帮助我

最佳答案

这是因为您的 public String get() Client 的方法类(class)返回provaonSuccess() 之前给它设置一个值。

这是正常的,因为是异步调用。

在您的情况下,您必须在 public String get() 中创建一个接口(interface)来处理异步调用方法,像这样:

public class Client {

// This interface will be used in your get() method, and implement in your first snippet
public interface MyClientCallback {
public void onResponse(String value);
}

// Add your interface as param
public void get(MyClientCallback callback) {

```
// prova = response.toString();
callback.onReponse(response.toString());
```

}
}

然后你可以这样调用它:

TextView textView = (TextView) findViewById(R.id.textView);
c.get(new MyClientCallback() {
@Override
public void onResponse(String value) {
textView.setText(value);
}
});

希望对您有所帮助。

关于java - 我如何为 json 解析集成 loopj,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53525926/

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