Let's say you have just parsed some JSON data and you want to display them to a ListView.
For Simplicity sake I will assign all the properties of each item to only one TextView so we won't need to create a custom ArrayAdapter.
Assume that's our JSON data :
There's a JSON Array and that's everything in between [, ] and there are four JSON Objects all of them with id and title properties.
First of all we are gonna create a class for our Objects :
Initialize an ArrayList of <TvShow> Obejcts :
So finally we store our data to a JSONArray object :
and get the length of the array. int len = jArray.length();
All we need to do now is a for statement to run the array for each item.
alist.add(jData);
}
Now we have our ArrayList alist with TvShow Object's data.
ArrayList<TvShow> results = GetResults(); //assuming the GetResults returns the alist from above
In our XML file we create a ListView and grab its id to the ListView item :
ListView lv= (ListView)findViewById(R.id.list );
The last thing we need to do is to assign the adapter to the ListView :
Now our ListView assings to an Object for every TextView item in the list.
For Simplicity sake I will assign all the properties of each item to only one TextView so we won't need to create a custom ArrayAdapter.
Assume that's our JSON data :
[ {"id":"1","title":"Homeland"},{"id":"2","title":"Breaking Bad"}, {"id":"3","title":"Dexter"},{"id":"4","title":"Californication"} ]
There's a JSON Array and that's everything in between [, ] and there are four JSON Objects all of them with id and title properties.
First of all we are gonna create a class for our Objects :
public class TvShow() {Note that we need to Override the toString method for the Object TvShow so that every TextView in the list will display strings.
int id;
String title;
public TvShow( int id, String title) {
this.id = id;
this.title = title;
}
public int getID() {
return id;
}
public String getTitle() {
return title;
}
@Override
public String toString(){
String toReturn = "ID = "+id + " Title= " +title ;
return toReturn;
}
}
Initialize an ArrayList of <TvShow> Obejcts :
ArrayList<TvShow> alist = new ArrayList<TvShow>();
So finally we store our data to a JSONArray object :
JSONArray jArray = new JSONArray(result); //result is the String response we got from our web service
and get the length of the array. int len = jArray.length();
All we need to do now is a for statement to run the array for each item.
for (int i = 0; i < len; i++) {JSONData jData = new JSONData(_id, _title);
JSONObject jObj = jArray.getJSONObject(i);
int _id = jObj.getInt("id");
String _title = jObj.getString("title");
alist.add(jData);
}
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
return alist;
Now we have our ArrayList alist with TvShow Object's data.
ArrayList<TvShow> results = GetResults(); //assuming the GetResults returns the alist from above
In our XML file we create a ListView and grab its id to the ListView item :
ListView lv= (ListView)findViewById(R.id.list );
Next we need to define our Adapter :
ArrayAdapter<TvShow> arrayAdapter = new ArrayAdapter<TvShow>(this, android.R.layout.simple_list_item_1 , results );
The constructor is :
public ArrayAdapter (Context context, int textViewResourceId, T[] objects)
ls.setAdapter(arrayAdapter);
Now our ListView assings to an Object for every TextView item in the list.
No comments:
Post a Comment