- Step 1: Add Volley Library To App Level Module.app Gradle File Like Below Way
implementation 'com.android.volley:volley:1.1.1'
2. Step 2 : Add Internet Permission To Android Manifest File .
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
3. Step 3. Add List View And A Data Show Button To Activity_main.xml File .
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">
<Button
android:text="Show Data"
android:id="@+id/showbtn"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<ListView
android:id="@+id/list"
android:layout_width="match_parent"
android:layout_height="match_parent"></ListView>
</LinearLayout>
Step 4: In MainActivity.java File Find List View And Button And Set Onclicklisener To Button And Work Like Below Way.
package com.example.ppc.jsonarraycustomlistview;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.JsonArrayRequest;
import com.android.volley.toolbox.JsonObjectRequest;
import com.android.volley.toolbox.JsonRequest;
import com.android.volley.toolbox.Volley;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.ArrayList;
public class MainActivity extends AppCompatActivity {
private ListView listView;
private Button button;
private ArrayList<String> mylist = new ArrayList<String>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView = findViewById(R.id.list);
button = findViewById(R.id.showbtn);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
RequestQueue requestQueue = Volley.newRequestQueue(getApplicationContext());
String url = "https://api.myjson.com/bins/1b9qi3";
JsonArrayRequest jsonArrayRequest = new JsonArrayRequest(Request.Method.GET, url, null, new Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray response) {
for(int i = 0;i<response.length();i++){
try {
JSONObject jsonObject = response.getJSONObject(i);
String fstname = (String) jsonObject.get("FirstName");
mylist.add(fstname);
} catch (JSONException e) {
e.printStackTrace();
}
}
ArrayAdapter <String> adapter = new ArrayAdapter<String>(MainActivity.this,android.R.layout.simple_list_item_1,mylist);
listView.setAdapter(adapter);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
});
requestQueue.add(jsonArrayRequest);
}
});
}
}
My Json Data On Server Like this
[
{
"EmployeeID": 1,
"LastName": "Davolio",
"FirstName": "Nancy",
"Address": "507 - 20th Ave. E. Apt. 2A",
"City": "Seattle",
"Region": "WA",
"PostalCode": "98122",
"Country": "USA",
"HomePhone": "(206) 555-9857",
"ResumeID": 1,
"Resume": {
"__deferred": {
"uri": "/here/goes/your/serviceUrl/Employees(1)/Resume"
}
}
},
{
"EmployeeID": 2,
"LastName": "Fuller",
"FirstName": "Andrew",
"Address": "908 W. Capital Way",
"City": "Tacoma",
"Region": "WA",
"PostalCode": "98401",
"Country": "USA",
"HomePhone": "(206) 555-9482",
"ResumeID": 2,
"Resume": {
"__deferred": {
"uri": "/here/goes/your/serviceUrl/Employees(2)/Resume"
}
}
},
{
"EmployeeID": 3,
"LastName": "Leverling",
"FirstName": "Janet",
"Address": "722 Moss Bay Blvd.",
"City": "Kirkland",
"Region": "WA",
"PostalCode": "98033",
"Country": "USA",
"HomePhone": "(206) 555-3412",
"ResumeID": 3,
"Resume": {
"__deferred": {
"uri": "/here/goes/your/serviceUrl/Employees(3)/Resume"
}
}
},
{
"EmployeeID": 4,
"LastName": "Peacock",
"FirstName": "Margaret",
"Address": "4110 Old Redmond Rd.",
"City": "Redmond",
"Region": "WA",
"PostalCode": "98052",
"Country": "USA",
"HomePhone": "(206) 555-8122",
"ResumeID": 4,
"Resume": {
"__deferred": {
"uri": "/here/goes/your/serviceUrl/Employees(4)/Resume"
}
}
},
{
"EmployeeID": 5,
"LastName": "Buchanan",
"FirstName": "Steven",
"Address": "14 Garrett Hill",
"City": "London",
"Region": null,
"PostalCode": "SW1 8JR",
"Country": "UK",
"HomePhone": "(71) 555-4848",
"ResumeID": 5,
"Resume": {
"__deferred": {
"uri": "/here/goes/your/serviceUrl/Employees(5)/Resume"
}
}
},
{
"EmployeeID": 6,
"LastName": "Suyama",
"FirstName": "Michael",
"Address": "Coventry House Miner Rd.",
"City": "London",
"Region": null,
"PostalCode": "EC2 7JR",
"Country": "UK",
"HomePhone": "(71) 555-7773",
"ResumeID": 6,
"Resume": {
"__deferred": {
"uri": "/here/goes/your/serviceUrl/Employees(6)/Resume"
}
}
},
{
"EmployeeID": 7,
"LastName": "King",
"FirstName": "Robert",
"Address": "Edgeham Hollow Winchester Way",
"City": "London",
"Region": null,
"PostalCode": "RG1 9SP",
"Country": "UK",
"HomePhone": "(71) 555-5598",
"ResumeID": 7,
"Resume": {
"__deferred": {
"uri": "/here/goes/your/serviceUrl/Employees(7)/Resume"
}
}
},
{
"EmployeeID": 8,
"LastName": "Callahan",
"FirstName": "Laura",
"Address": "4726 - 11th Ave. N.E.",
"City": "Seattle",
"Region": "WA",
"PostalCode": "98105",
"Country": "USA",
"HomePhone": "(206) 555-1189",
"ResumeID": 8,
"Resume": {
"__deferred": {
"uri": "/here/goes/your/serviceUrl/Employees(8)/Resume"
}
}
},
{
"EmployeeID": 9,
"LastName": "Dodsworth",
"FirstName": "Anne",
"Address": "7 Houndstooth Rd.",
"City": "London",
"Region": null,
"PostalCode": "WG2 7LT",
"Country": "UK",
"HomePhone": "(71) 555-4444",
"ResumeID": 9,
"Resume": {
"__deferred": {
"uri": "/here/goes/your/serviceUrl/Employees(9)/Resume"
}
}
}
]