Sam
Sam

Reputation: 11

How to display JSON data fetched from url in ListView in Android using ION Library

I have fetched JSON data from url using ION library, but I am facing problem in displaying it in a listView in android studio.

I debug it in this way:

JSONObject jsonObject = new JSONObject(String.valueOf(result));
JSONArray jsonArray = jsonObject.getJSONArray("contacts");

and here is the output for debug:

result = {JsonObject@5328} "{"id":2,"deptName":"PWD","logo":[],"contacts":[{"contactId":25,"empName":"Chill","designation":"Manager","mobile":"","landlineOffice":"23412388","landlineRes":"2334567","fax":"123445","email":"[email protected]"},{"contactId":27,"empName":"Cena","designation":"Wrestler","mobile":"98176253","landlineOffice":"2334531","landlineRes":"444568","fax":"","email":"[email protected]"}]}"
result = {JsonObject@5328} "{"id":2,"deptName":"PWD","logo":[],"contacts":[{"contactId":25,"empName":"Chill","designation":"Manager","mobile":"","landlineOffice":"23412388","landlineRes":"2334567","fax":"123445","email":"[email protected]"},{"contactId":27,"empName":"Cena","designation":"Wrestler","mobile":"98176253","landlineOffice":"2334531","landlineRes":"444568","fax":"","email":"[email protected]"}]}"
jsonObject = {JSONObject@5341} "{"id":2,"deptName":"PWD","logo":[],"contacts":[{"contactId":25,"empName":"Chill","designation":"Manager","mobile":"","landlineOffice":"23412388","landlineRes":"2334567","fax":"123445","email":"[email protected]"},{"contactId":27,"empName":"Cena","designation":"Wrestler","mobile":"98176253","landlineOffice":"2334531","landlineRes":"444568","fax":"","email":"[email protected]"}]}"

id is an integer sent form first activity.The code for my activity is given below:

public class ContactsActivity extends AppCompatActivity {
    ListView contactList;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_contacts);

        Intent intent = getIntent();
        contactList = findViewById(R.id.contactList);


        int dId = intent.getExtras().getInt("id");
        String Sid = new String(String.valueOf(dId));

        Context context = getApplicationContext();
        Toast.makeText(context, "" + dId, Toast.LENGTH_SHORT).show();

        try {
            getContacts(Sid);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }


    public void getContacts(final String Sid) throws Exception {
        class Contacts{
            String empName;
            String designation;
            String mobile;
            String landlineOffice;
            String landlineRes;
            String fax;
            String email;

            public Contacts(String designation, String mobile, String landlineOffice, String landlineRes, String fax, String email) {
                this.designation = designation;
                this.mobile = mobile;
                this.landlineOffice = landlineOffice;
                this.landlineRes = landlineRes;
                this.fax = fax;
                this.email = email;
            }
        }



        Ion.with(this)
                .load("http://10.180.243.19:8080/api/departments/" + Sid)
                .asJsonObject()
                .setCallback(new FutureCallback<JsonObject>() {
                    @Override
                    public void onCompleted(Exception e, JsonObject result) {
                        int id = Integer.parseInt(Sid);


                            try {
                             JSONObject jsonObject = new JSONObject(String.valueOf(result));
                                JSONArray jsonArray = jsonObject.getJSONArray("contacts");

                            } catch (JSONException e1) {
                                e1.printStackTrace();
                            }
                        }

                });



    }
}

I expect to display list of contact details of multiple employees in a listview.

Upvotes: 0

Views: 75

Answers (0)

Related Questions