Skip to content Skip to sidebar Skip to footer

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/

Populate Listview from JSON

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"