Android developmentAndroid tutorial

Android Grid layout with Array list rest API response

Hiii developer in this android solution we are discussing the  Grid layout to show data the same as to the image. First of all, we get a response from the rest API with JSONArray.  JSONArray parsing with grid layout. This an easy way to implement the JSON Response to Array list data to display on-screen in a grid layout.

Add Grid Layout in the XML file like these.

<GridView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/grid"
    android:columnWidth="75dip"
    android:gravity="left"
    android:horizontalSpacing="5dip"
    android:numColumns="auto_fit"
    android:stretchMode="columnWidth"
    android:verticalSpacing="75dip"/>

Java Source code with JSON Response With Volley.

// Get Request For JSONObject
public void BolgDetails(){
    final ProgressDialog loading = new ProgressDialog(Blog_Details.this);
    loading.setMessage("Please Wait...");
    loading.setCanceledOnTouchOutside(false);
    loading.show();
    JsonObjectRequest req = new JsonObjectRequest(Request.Method.GET, ConfiURL.Resource_FullDetail_URL+Blog_Id, null, new Response.Listener<JSONObject>() {
        @Override
        public void onResponse(JSONObject response) {
            Log.d("Response", response.toString());

            try {
                Log.d("JSON", String.valueOf(response));
                loading.dismiss();
                String Error = response.getString("httpStatus");
                if(Error.equals("OK")){
                    JSONObject Body = response.getJSONObject("body");
                    JSONArray teg = Body.getJSONArray("resourceTags");
                   
                    Resourceteg(teg);

                }else if(Error.equals("")||Error.equals(null)){

                }else {
                }
            } catch (JSONException e) {
                e.printStackTrace();
                loading.dismiss();

            }

        }
    }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            loading.dismiss();
            VolleyLog.d("Error", "Error: " + error.getMessage());
            Toast.makeText(Blog_Details.this, "" + error.getMessage(), Toast.LENGTH_SHORT).show();

        }
    })
    {
        @Override
        public String getBodyContentType() {
            return "application/json; charset=utf-8";
        }

        @Override
        public Map<String, String> getHeaders() throws AuthFailureError {
            HashMap<String, String> headers = new HashMap<String, String>();
            headers.put("Authorization", Token);
            return headers;
        }
    };
    RequestQueue queue = Volley.newRequestQueue(getApplicationContext());
    queue.add(req);
}


protected void Resourceteg(JSONArray response){
    // initialize list
    ArrayList<String> tubeLines = new ArrayList<String>();
    tubeLines.equals(null);
    try {
        for(int i=0;i<response.length();i++) {
            // Get current json object
            JSONObject line = response.getJSONObject(i);
            // Get the current line (json object) data
            // To avoid crash use optString
            String Name = line.optString("name");
            tubeLines.add(Name);
        }

        GridView myGrid=(GridView)findViewById(R.id.grid);
        myGrid.setAdapter(new ArrayAdapter<String>(this,R.layout.resource_teg, tubeLines));
    } catch (JSONException e) {
        Toast.makeText(Blog_Details.this, e.toString(), Toast.LENGTH_LONG).show();
    }

}