1

イオン ライブラリを使用して、php Web サービスから json オブジェクトの応答をダウンロードしています。私はこのように使用しています:

Ion.with(getActivity())
            .load("http://amd.com/loginService.php")
            .progressBar(progressBar).progress(new ProgressCallback() {
        @Override
        public void onProgress(long downloaded, long total) {
            int mProgress = (int) (100 * downloaded / total);
            progressBar.setProgress(mProgress);
        }
    })
            .setMultipartParameter("fb_id", id)
            .setMultipartParameter("fb_token", AccessToken.getCurrentAccessToken().toString())
            .asJsonObject()
            .setCallback(new FutureCallback<JsonObject>() {
                @Override
                public void onCompleted(Exception e, JsonObject result) {
                    if (result == null) {
                        Toast.makeText(getActivity(), "Error", Toast.LENGTH_SHORT).show();
                        progressBar.setVisibility(View.GONE);
                    } else {


                        Log.v("IonResult", result.toString());
                        progressBar.setVisibility(View.GONE);

                    }
                }
            });

ここで、次の 2 つの質問をしたいと思います。

  1. 「お待ちください」とプログレスバーをうまく表示するにはどうすればよいですか? 進行状況バーが表示され、サーバーの応答が達成されると消えます。

  2. 応答で取得しているjsonを解析する方法は? このように結果を記録しました

    Log.v("IonResult", result.toString());

応答を見ることができますが、それを使用して解析し、必要なアイテムを取得するにはどうすればよいですか?

基本的な質問であることは承知していますが、私はAndroidの初心者なので、改善を手伝ってください。ありがとう。

4

1 に答える 1

0

I started using Ion recently, so I'm not sure if this is the best way to do that (please, if you know, leave a comment here!).

So, I'm using callbacks to return the value to another class.

public interface ResponseCallback {

    public void onSuccess(String result);

    public void onError(String result);

}

One example in my code:

public void getChats(final Context context, final String url,final ResponseCallback responseCallback) {


 Ion.with(context)

        .load(url)
        .asString()
        .setCallback(new FutureCallback<String>() {
            @Override
            public void onCompleted(Exception e, String result) {
                if (e != null) {
                    if (responseCallback != null) {
                        responseCallback.onError(e.toString());
                    }
                    Toast.makeText(context, "Error loading chat list.", Toast.LENGTH_SHORT);
                    return;
                }

                if (responseCallback != null) {
                    responseCallback.onSuccess(result);
                }
            }
        });
}

So, when I call getChats(), I implement ResponseCallback methods. I hope it helps, even that I think there's a better way to do that.

于 2015-07-14T02:21:05.950 に答える