Sebelum lebih lanjut, perlu diketahui bahwa teerdapat tiga metode bawaan yang harus kita implementasikan. Mulailah navigasi ke JSONAdapter.java. Modifikasikanlah fungsi-fungsi di bawah ini supaya menjadi seperti kode di bawah.
@Override
public int getCount() {
    return mJsonArray.length();
}
@Override
public Object getItem(int position) {
    return mJsonArray.optJSONObject(position);
}
@Override
public long getItemId(int position) {
    return position;
}

Anda dapat mencoba memahami sendiri, apa maksud-maksud dari fungsi-fungsi bawaan tersebut.
Setelah itu tambahkan fungsi ini pada Class JSONAdapter anda.
public void updateData(JSONArray jsonArray) {
    //20. update array data yang dipakai
    mJsonArray = jsonArray;
    notifyDataSetChanged();
}

Fungsi ini berguna untuk meng-update isi dari array data kita.  Lakukanlah navigasi ke MainActivity, dan kita akan rombak fungsi onCreate agar memakai JSONAdapter, tidak lagi dengan ArrayAdapter
Langkah pertama adalah menambahkan global variabel : 
//JSONAdapter
JSONAdapter mJSONAdapter;

Setelah itu rubah onCreate menjadi seperti berikut. :
Beri komentar pada kode lama kita yang masih menggunakan ArrayAdapter dan kita set beberapa kode.
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_listview);
//1.inisiasi listview
mListView = (ListView) findViewById(R.id.list1);

/*
//2.inisiasi ArrayList sebagai wadah dari List kita
mArrayList = new ArrayList();
//3.Inisiasi Adapter
mAdapter = new ArrayAdapter(this,android.R.layout.simple_list_item_1,mArrayList);
//4.Set Adapter
mListView.setAdapter(mAdapter);
//5.Coba isi data
mArrayList.add("Apple");
mArrayList.add("Windows");
mArrayList.add("Linux");
mArrayList.add("Android");
mArrayList.add("iOS");
*/
// 18. Tambahkan mJSONAdapter
mJSONAdapter = new JSONAdapter(this, getLayoutInflater());
// 19. Set ListView untuk memakai JSONAdapter
mListView.setAdapter(mJSONAdapter);
//6. Listener untuk Item Click
mListView.setOnItemClickListener(this);
//7. Tambahan untuk Progress dialog
mDialog = new ProgressDialog(this);
mDialog.setMessage("Sedang Mencari Klub");
mDialog.setCancelable(false);
query_data();

Selanjutnya kita akan update fungsi query_data pada MainActivity
Tambahkan fungsi updateData pada onSuccess seperti dibawah ini.
@Override
public void onSuccess(JSONObject jsonObject) {
    // 12. Begitu Sukses hilangkan progress dialog
    mDialog.dismiss();
    //13. Keluarkan toast
    Toast.makeText(getApplicationContext(), "Sukses!", Toast.LENGTH_SHORT).show();
    //14. Untuk sekarang JSON hanya kita keluarkan lewat log
    Log.d("aplikasi-mobile.com", jsonObject.toString());
    //18.update data kita
    mJSONAdapter.updateData(jsonObject.optJSONArray("data"));
}

Sekarang silakan jalankan alias run aplikasi mobile anda, dan lihat hasilnya. 
Tutorial Pemrograman Android App selanjutnya adalah Pembuatan Detail Page sebagai kontainer untuk onClick-nya.