com.yanzhenjie.nohttp.sample.activity.json.JsonActivity.java Source code

Java tutorial

Introduction

Here is the source code for com.yanzhenjie.nohttp.sample.activity.json.JsonActivity.java

Source

/*
 * Copyright 2015 Yan Zhenjie
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.yanzhenjie.nohttp.sample.activity.json;

import android.os.Bundle;
import android.view.View;
import android.widget.TextView;

import com.yanzhenjie.nohttp.sample.R;
import com.yanzhenjie.nohttp.sample.activity.BaseActivity;
import com.yanzhenjie.nohttp.sample.nohttp.HttpListener;
import com.yanzhenjie.nohttp.sample.util.Constants;
import com.yolanda.nohttp.NoHttp;
import com.yolanda.nohttp.rest.Request;
import com.yolanda.nohttp.rest.Response;

import org.json.JSONArray;
import org.json.JSONObject;

import java.util.Locale;

/**
 * Created in Jan 31, 2016 10:16:26 PM.
 *
 * @author Yan Zhenjie.
 */
public class JsonActivity extends BaseActivity implements View.OnClickListener {

    private TextView mTvResult;

    @Override
    protected void onActivityCreate(Bundle savedInstanceState) {
        setContentView(R.layout.activity_json);

        findView(R.id.btn_object_reqeust).setOnClickListener(this);
        findView(R.id.btn_array_request).setOnClickListener(this);
        mTvResult = findView(R.id.tv_result);
    }

    @Override
    public void onClick(View v) {
        if (v.getId() == R.id.btn_object_reqeust) {
            Request<JSONObject> request = NoHttp.createJsonObjectRequest(Constants.URL_NOHTTP_JSONOBJECT);
            request(0, request, objectListener, true, true);
        } else if (v.getId() == R.id.btn_array_request) {
            Request<JSONArray> request = NoHttp.createJsonArrayRequest(Constants.URL_NOHTTP_JSONARRAY);
            request(1, request, arrayListener, true, true);
        }
    }

    private HttpListener<JSONObject> objectListener = new HttpListener<JSONObject>() {
        @Override
        public void onSucceed(int what, Response<JSONObject> response) {
            JSONObject jsonObject = response.get();
            if (0 == jsonObject.optInt("error", -1)) {
                String result = getString(R.string.request_json_result);
                result = String.format(Locale.getDefault(), result,
                        response.request().getRequestMethod().toString(), jsonObject.optString("url"),
                        jsonObject.optString("data"), jsonObject.optString("error"));
                mTvResult.setText(result);
            }
        }

        @Override
        public void onFailed(int what, Response<JSONObject> response) {
            showMessageDialog(R.string.request_failed, response.getException().getMessage());
        }
    };

    private HttpListener<JSONArray> arrayListener = new HttpListener<JSONArray>() {
        @Override
        public void onSucceed(int what, Response<JSONArray> response) {
            JSONArray jsonArray = response.get();
            StringBuilder builder = new StringBuilder();
            for (int i = 0; i < jsonArray.length(); i++) {
                String string = jsonArray.optString(i);
                builder.append(string).append("\n");
            }

            mTvResult.setText(builder.toString());
        }

        @Override
        public void onFailed(int what, Response<JSONArray> response) {
            showMessageDialog(R.string.request_failed, response.getException().getMessage());
        }
    };

}