Populating JSON from this link to android Listview Populating JSON from this link to android Listview json json

Populating JSON from this link to android Listview


Continuing your class:

public class MainActivity extends Activity {    private static String url="https://www.dropbox.com/s/rhk01nqlyj5gixl/jsonparsing.txt?dl=1";    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        //Create a JSON parser Instance ----- Used JSON parser from Android        JSONParser jParser=new JSONParser();        //Getting JSON string from URL ------ Used JSON Array from Android        JSONArray json=jParser.getJSONFromUrl(url);        List<WhateverObject> yourData = new ArrayList<WhateverObject>();        try {            for(int i=0;i<json.length();i++)            {                JSONObject c=json.getJSONObject(i);// Used JSON Object from Android                //Storing each Json in a string variable                int AGE=c.getInt("age");                String NAME=c.getString("name");                String CITY=c.getString("city");                String GENDER=c.getString("Gender");                String BIRTHDATE=c.getString("birthdate");                yourData.add(new WhateverObject(NAME, CITY, GENDER, BIRTHDATE));            }        } catch (JSONException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }        ListView yourListView = (ListView) findViewById(R.id.itemListView);        ListAdapter customAdapter = new ListAdapter(this, R.layout.itemlistrow, yourData);        yourListView.setAdapter(customAdapter);    }}

adater:

public class ListAdapter extends ArrayAdapter<Item> {    public ListAdapter(Context context, int textViewResourceId) {        super(context, textViewResourceId);        // TODO Auto-generated constructor stub    }    private List<Item> items;    public ListAdapter(Context context, int resource, List<Item> items) {        super(context, resource, items);        this.items = items;    }    @Override    public View getView(int position, View convertView, ViewGroup parent) {        View v = convertView;        TextView tt = null;        TextView tt1 = null;        TextView tt2 = null;        TextView tt3 = null;        TextView tt4 = null;        if (v == null) {            LayoutInflater vi;            vi = LayoutInflater.from(getContext());            v = vi.inflate(R.layout.itemlistrow, null);            tt = (TextView) v.findViewById(R.id.age);            tt1 = (TextView) v.findViewById(R.id.name);            tt2 = (TextView) v.findViewById(R.id.city);            tt3 = (TextView) v.findViewById(R.id.gender);            tt4 = (TextView) v.findViewById(R.id.birthdate);        }        Item p = items.get(position);        if (p != null) {            if (tt != null) {                tt.setText(""+p.getAge());            }            if (tt1 != null) {                tt1.setText(""+p.getName());            }            if (tt2 != null) {                tt2.setText(""+p.getCity());            }            if (tt3 != null) {                tt3.setText(""+p.getGender());            }            if (tt4 != null) {                tt4.setText(""+p.getBirthdate());            }        }        return v;    }}

object holding data:

public class WhateverObject{    private int age;    private String name;    private String city;    private String gender;    private String birthdate;            public WhateverObject(int age, String name, String city, String gender, String birthdate){        this.age = age;        this.name = name;        this.city = city;        this.gender = gender;        this.birthdate = birthdate;    }    public int getAge(){        return this.age;    }    public String getName(){        return this.name;    }    public String getCity(){        return this.city;    }    public String getGender(){        return this.gender;    }    public String getBirthdate(){        return this.birthdate;    }}

xml for listview item (save under itemlistrow name):

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"             android:layout_height="wrap_content" android:orientation="vertical"             android:layout_width="fill_parent">    <TableRow android:layout_width="fill_parent"              android:id="@+id/TableRow01"              android:layout_height="wrap_content">        <TextView                android:id="@+id/age"                android:layout_width="fill_parent"                android:layout_height="wrap_content"                android:text="age" android:textStyle="bold"                android:gravity="left"                android:layout_weight="1"                android:typeface="monospace"                android:height="40sp"/>    </TableRow>    <TableRow android:layout_height="wrap_content"              android:layout_width="fill_parent">        <TextView                android:id="@+id/name"                android:layout_width="fill_parent"                android:layout_height="wrap_content"                android:text="name"                android:layout_weight="1"                android:height="20sp"/>    </TableRow>    <TableRow android:layout_height="wrap_content"              android:layout_width="fill_parent">        <TextView                android:id="@+id/city"                android:layout_width="fill_parent"                android:layout_height="wrap_content"                android:text="city"                android:layout_weight="1"                android:height="20sp"/>    </TableRow>    <TableRow android:layout_height="wrap_content"              android:layout_width="fill_parent">        <TextView                android:id="@+id/gender"                android:layout_width="fill_parent"                android:layout_height="wrap_content"                android:text="city"                android:layout_weight="1"                android:height="20sp"/>    </TableRow>    <TableRow android:layout_height="wrap_content"              android:layout_width="fill_parent">        <TextView                android:id="@+id/birthdate"                android:layout_width="fill_parent"                android:layout_height="wrap_content"                android:text="city"                android:layout_weight="1"                android:height="20sp"/>    </TableRow></TableLayout>

Reused elements from https://stackoverflow.com/a/8166802/1276374


Simpler example:

public class MainActivity extends Activity {    private static String url="https://www.dropbox.com/s/rhk01nqlyj5gixl/jsonparsing.txt?dl=1";    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        //Create a JSON parser Instance ----- Used JSON parser from Android        JSONParser jParser=new JSONParser();        //Getting JSON string from URL ------ Used JSON Array from Android        JSONArray json=jParser.getJSONFromUrl(url);        List<Map<String, String>> personList = new ArrayList<Map<String,String>>();        try {            for(int i=0;i<json.length();i++)            {                JSONObject c=json.getJSONObject(i);// Used JSON Object from Android                //Storing each Json in a string variable                int AGE=c.getInt("age");                String NAME=c.getString("name");                String CITY=c.getString("city");                String GENDER=c.getString("Gender");                String BIRTHDATE=c.getString("birthdate");                personList.add(createPerson(AGE, NAME, CITY, GENDER, BIRTHDATE));            }        } catch (JSONException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }        ListView yourListView = (ListView) findViewById(R.id.itemListView);        simpleAdpt = new SimpleAdapter(this, personList, android.R.layout.simple_list_item_1, new String[] {"person"}, new int[] {android.R.id.text1});        yourListView.setAdapter(simpleAdpt);    }    private HashMap<String, String> createPerson(int age, String name, String city, String gender, String birthdate) {        HashMap<String, String> person = new HashMap<String, String>();        person.put("person", name+" | "+age + " | "+city + " | "+gender + " | "+birthdate);        return person;    }}

Thanks to http://www.javacodegeeks.com/2013/06/android-listview-tutorial-and-basic-example.html


Create a class, say Student, to contain a record, create an array of Student from the JSON, and then use that with ArrayAdapter to populate your ListView.


Use of ArrayList will be better for you.See the following snippet,

Declare the following on the top,

public static ArrayList<String> FriendName = new ArrayList<String>();

And the following inside the try block after fetching the Name

FriendName .add(Name);

And you can easily fetch the values from the arraylist through the index value like follows,

String data=FriendName.get(0);