How To Load Data To Custom Listview From Json Array
I have loaded data to normal list view from JSON array like this JSONArray jArray = new JSONArray(result); final String[] array_spinner = new String[jArray.length()]; for
Solution 1:
- Create a custom Adapter extending BaseAdpter or ArrayAdpter and pass array or ArrayList in the constructor
- Create the View in a layout (of row)
- Inflate this xml in getView function of the custom Adapter and set the data
as in
http://www.josecgomez.com/2010/05/03/android-putting-custom-objects-in-listview/
for you i mixed both to make you understand...
Activity XML
<?xml version="1.0" encoding="utf-8"?><LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical"android:layout_width="fill_parent"android:layout_height="wrap_content"
><ListViewandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:id="@+id/lstText"
/></LinearLayout>
list row XML (in layout row.xml)
<?xml version="1.0" encoding="utf-8"?><LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="fill_parent"android:layout_height="fill_parent"><LinearLayoutandroid:orientation="vertical"android:layout_width="fill_parent"android:layout_height="fill_parent"><TextViewandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:id="@+id/txtAlertText" /></LinearLayout></LinearLayout>
you adapter class
classJSONAdapterextendsBaseAdapterimplementsListAdapter {
private final Activity activity;
private final JSONArray jsonArray;
privateJSONAdapter (Activity activity, JSONArray jsonArray) {
assert activity != null;
assert jsonArray != null;
this.jsonArray = jsonArray;
this.activity = activity;
}
@Overridepublic int getCount() {
if(null==jsonArray)
return0;
elsereturn jsonArray.length();
}
@OverridepublicJSONObjectgetItem(int position) {
if(null==jsonArray) returnnull;
elsereturn jsonArray.optJSONObject(position);
}
@Overridepublic long getItemId(int position) {
JSONObject jsonObject = getItem(position);
return jsonObject.optLong("id");
}
@OverridepublicViewgetView(int position, View convertView, ViewGroup parent) {
if (convertView == null)
convertView = activity.getLayoutInflater().inflate(R.layout.row, null);
TextView text =(TextView)convertView.findViewById(R.id.txtAlertText);
JSONObject json_data = getItem(position);
if(null!=json_data ){
String jj=json_data.getString("f_name");
text.setText(jj);
}
return convertView;
}
}
your activty
publicclassmainextendsActivity {
/** Called when the activity is first created. */ListView lstTest;
//Array Adapter that will hold our ArrayList and display the items on the ListViewJSONAdapter jSONAdapter ;
@OverridepublicvoidonCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//Initialize ListView
lstTest= (ListView)findViewById(R.id.lstText);
jSONAdapter = newJSONAdapter (main.this,jArray);//jArray is your json array //Set the above adapter as the adapter of choice for our list
lstTest.setAdapter(jSONAdapter );
}
Post a Comment for "How To Load Data To Custom Listview From Json Array"