7

私のプロジェクトの 1 つで、私はloopj asynchttpclient自分の Web サイトとの通信に使用しています。通信部分はうまく機能し、応答も得られます

私の活動は次のようになります

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は必要ありません。
  • 呼び出しサービス メソッドを静的に変更AsyncHttpClientし、パラメーターとして を受け取ります。

クラス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 に答える