【问题标题】:how can I integrate loopj for a json parse如何集成 loopj 以进行 json 解析
【发布时间】:2018-11-28 18:32:19
【问题描述】:

这些是我的 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不起作用,有人可以帮助我

【问题讨论】:

    标签: java android json parsing loopj


    【解决方案1】:

    这是因为 Client 类的 public String get() 方法在 onSuccess() 设置值之前返回 prova。

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

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

    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);
        }
    });
    

    希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-10-11
      • 2011-06-03
      • 1970-01-01
      • 1970-01-01
      • 2021-11-14
      • 2015-12-09
      • 1970-01-01
      • 2021-12-26
      相关资源
      最近更新 更多