7

在我的一个项目中,我loopj asynchttpclient用于与我的网站进行通信。沟通部分运作良好并得到回应

我的活动看起来像

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

        WebRequest test=new WebRequest();
        test.callService();
}

WebRequest 类为

public class WebRequest extends Activity {


    public void callService(){


        AsyncHttpClient client = new AsyncHttpClient();
        client.post("http://domain.com/dp/index.php", new AsyncHttpResponseHandler() {


            @Override
            public void onSuccess(String response) {
                Log.v("P",response);
            }

            @Override
            public void onFailure(Throwable e, String response) {
                 Log.v("PS",e.toString());
            }

    });
    }




}

我很困惑如何将响应返回到主要活动,以便我可以从该响应创建列表视图。

我是新手请帮助我提前谢谢

4

1 回答 1

8

在您的 WebRequest 类中:

  • 我认为您不希望此类扩展Activity. Activity只有在制作页面以显示在应用程序中时,您才应该进行扩展。您只想执行一些代码,因此Activity不需要扩展。
  • 将您的呼叫服务方法更改为静态并以 aAsyncHttpClient作为参数。

您的WebRequest课程现在应该如下所示:

final class WebRequest {
    private AsyncHttpClient mClient = new AsyncHttpClient();
    public static void callService(AsyncHttpResponseHandler handler) {
        mClient.post("http://domain.com/dp/index.php", handler);
    }
}

在您的主要活动中:

现在,您在主要活动中所要做的就是调用静态方法,如下所示:

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_home);
        WebRequest.callService(new AsyncHttpResponseHandler() {
            @Override
            public void onStart() {
                // Initiated the request
            }

            @Override
            public void onSuccess(String response) {
                // Successfully got a response
            }

            @Override
            public void onFailure(Throwable e, String response) {
                // Response failed :(
            }

            @Override
            public void onFinish() {
                // Completed the request (either success or failure)
            }
        });
}

在上述回调中对活动中的视图做任何你需要做的事情。希望这可以帮助!

于 2013-07-30T21:28:18.697 回答