Skip to main content

Membuat ListView di Android Dari Database MySql

Kali ini saya ingin share sedikit mengenai cara membuat ListView dari database phpMyAdmin. Kebetulan kemaren-kemaren salah satu rekan dari diskusi android email saya dan bertanya gimana caranya membuat ListView yang datanya dari database phpMyAdmin. Trus jika list tersebut di klik maka akan pindah ke activity lain yang yang menampilkan detail dari list yang di klik tadi...

Kira-kira screenshotnya seperti ini : 

Gambar 1. Tampilan List nya
Gambar 2. Tampilan Detail List nya
Disini saya buat contoh list region. Kebetulan saya ada kerjaan mengenai region ini jadi sekalian lah saya caplok daripada buat yang baru lagi, capek. Hehhee..
Dan untuk project ini kita hanya membutuhkan 3 class, yaitu: listExample.javaDetailKhsActivity.java & JSONParser.java.
1. listExample.java => Class ini merupakan main dari project ini dan class ini juga yang menampilkan list dari database yang yang ingin ditampilkan.

package nielpoenya.blogspot.com;

import java.util.ArrayList;
import java.util.HashMap;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import android.app.ListActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.AdapterView;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.TextView;
import android.widget.AdapterView.OnItemClickListener;

public class listExample extends ListActivity {
	JSONArray str_login = null;
	ArrayList> angkatan = new ArrayList>();
	
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
	    requestWindowFeature(Window.FEATURE_NO_TITLE);
	    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
	    setContentView(R.layout.panel_khs);
	        
	    JSONParser jParser = new JSONParser();
	    String link_url = "http://10.0.2.2:81/siakad-andro/khs.php";
		JSONObject json = jParser.AmbilJson(link_url);

		try {
			str_login = json.getJSONArray("info");
				
			for (int i = 0; i < str_login.length(); i++) {
				JSONObject ar = str_login.getJSONObject(i);

				String jdl = ar.getString("RegionName");
				String id = ar.getString("RegionID");
					
				HashMap map = new HashMap();

				map.put("jdl", jdl);
				map.put("id", id);

				angkatan.add(map);
			}
		} catch (JSONException e) {
			e.printStackTrace();
		}
		
		// Memanggil method adapter_listview()
		// Array JSON tadi di tampilkan dalam bentuk list
		this.adapter_listview();
	}
		
	public void adapter_listview() {
		ListAdapter adapter = new SimpleAdapter(this, angkatan,R.layout.list_item,new String[] { "jdl", "id"}, new int[] {R.id.tangk, R.id.kodeangk});

		setListAdapter(adapter);
		ListView lv = getListView();
		
		// Menangani jika salah satu list di klik
		// Menampilkan detail dari list yang dipilih
		lv.setOnItemClickListener(new OnItemClickListener() {
			@Override
			public void onItemClick(AdapterView parent, View view,int position, long id) {
				String kode_ang = ((TextView) view.findViewById(R.id.kodeangk)).getText().toString();
				Intent in = new Intent(getApplicationContext(), DetailKhsActivity.class);
				in.putExtra("kd_smt", kode_ang);
					
				startActivity(in);
			}
		});
	}
}

2. DetailKhsActivity => Class ini berfungsi untuk menampilkan atau menangani detail dari list tadi. Jadi misalnya kita memilih/klik salah satu list maka akan ditampilkan detailnya. 

package nielpoenya.blogspot.com;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import android.app.Activity;
import android.os.Bundle;
import android.view.Window;
import android.view.WindowManager;
import android.widget.TextView;

public class DetailKhsActivity extends Activity {
	public String kode;
	JSONArray str_login = null;
	
	@Override
	public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
        setContentView(R.layout.panel_detail_khs);
        
        Bundle b = getIntent().getExtras(); 
		kode = b.getString("kd_smt");
		
		String link_url = "http://10.0.2.2:81/siakad-andro/detail-info.php?RegionID="+kode;
		JSONParser jParser = new JSONParser();
		JSONObject json = jParser.AmbilJson(link_url);
		
		try {
			str_login = json.getJSONArray("info");
			String jdwl = "";
			TextView isi = (TextView) findViewById(R.id.dkhs);
			for(int i = 0; i < str_login.length(); i++){
				JSONObject ar = str_login.getJSONObject(i);
				jdwl += "RegionID            : " + ar.getString("RegionID")+"\n"+
						"CustomerID      : " + ar.getString("CustomerID")+"\n"+
						"RegionName     : " + ar.getString("RegionName")+"\n"+
						"TrapReceiverID : " + ar.getString("TrapReceiverID")+"\n"+
						"Status                  : " + ar.getString("Status")+"\n"+
						"Note                    : " + ar.getString("Note")+"\n"; 
			}
    		isi.setText(jdwl);
			
		} catch (JSONException e) {
			e.printStackTrace();
		}

	}
}
3. JSONParser => Kalau class ini sebenarnya class pembantu untuk parse data dari database ke mobile dengan JSON. 
package nielpoenya.blogspot.com;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.json.JSONException;
import org.json.JSONObject;

import android.util.Log;

public class JSONParser {

	static InputStream is = null;
	static JSONObject jObj = null;
	static String json = "";

	// constructor
	public JSONParser() {

	}

	public JSONObject AmbilJson(String url) {

		// Making HTTP request
		try {
			// defaultHttpClient
			DefaultHttpClient httpClient = new DefaultHttpClient();
			HttpPost httpPost = new HttpPost(url);

			HttpResponse httpResponse = httpClient.execute(httpPost);
			HttpEntity httpEntity = httpResponse.getEntity();
			is = httpEntity.getContent();			

		} catch (UnsupportedEncodingException e) {
			e.printStackTrace();
		} catch (ClientProtocolException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
		
		try {
			BufferedReader reader = new BufferedReader(new InputStreamReader(
					is, "iso-8859-1"), 8);
			StringBuilder sb = new StringBuilder();
			String line = null;
			while ((line = reader.readLine()) != null) {
				sb.append(line + "\n");
			}
			is.close();
			json = sb.toString();
		} catch (Exception e) {
			Log.e("Buffer Error", "Error converting result " + e.toString());
		}

		// try parse the string to a JSON object
		try {
			jObj = new JSONObject(json);
		} catch (JSONException e) {
			Log.e("JSON Parser", "Error parsing data " + e.toString());
		}

		// return JSON String
		return jObj;

	}
}

Gimana codingnya?
Ribet, biasa atau gimana? :D
Kalau nggak mau ribet source projectnya dapat di unduh disini : Membuat ListView dari Database phpMyAdmin di Android


Sumber : http://www.booting09.com

Comments

  1. kok detailnya gk muncul ya.?? mohon pencerahannya
    08-04 12:20:56.942 2379-2379/nielpoenya.blogspot.com E/JSON Parser﹕ Error parsing data org.json.JSONException: Unterminated object at character 80 of {"info" : [{"RegionID" : "5", "CustomerID" : "1", "RegionName" : "Kalimantan, "TrapReceiverID" : "05", "Status" : "1", "Note" : ""}]}
    kyk gini masalahnya...

    ReplyDelete
  2. Mantaps.. nice makasih penjelasannya..

    ReplyDelete
  3. tutorialnya bagus ni, file khs.php nya mana ya? link sourcode nya error

    ReplyDelete
  4. detail-info.php nya juga gk ada?

    ReplyDelete
  5. mas untuk linknya rusak... boleh minta kirim projectnya ?
    malela001@gmail.com thanks mas...

    ReplyDelete
  6. mas linknya mati, minta projectnya aryojiwobaskoro@gmail.com

    ReplyDelete

Post a Comment

Popular posts from this blog

Cara Edit Template Login Hotspot Mikrotik

Cara Mengganti Halaman Login Hotspot Mikrotik  - Bagi anda yang sudah membuat Hotspot di Mikrotik nya pastinya tau kan gimana tampilan halaman login default Mikrotik nya. Tampilannya simple dan cenderung membosankan. Nah, sebenarnya  Halaman Login Hotspot Mikrotik  dapat kita edit, modifikasi, dan ganti sesuai keinginan kita loh. Jadi halaman login default Mikrotik yang simple itu bisa kita buat jadi keren abis. Gimana caranya? Gampang kok, konsepnya hampir sama kaya bikin web sederhana. Jadi anda paling tidak harus ngerti bahasa HTML sedikit-sedikit, dan sedikit sentuhan desain tentunya. Oke, sebelum mulai  Belajar Mikrotik  kali ini persiapkan dulu senjatanya : > HTML editor : Dreamweaver, Notepad++, dll > Picture editor : CorelDraw, Photoshop, dll Pastikan  Hotspot Mikrotik  anda sudah jalan, coba akses halaman login hotspot anda di Browser. Buka Winbox, masuk ke menu Files. Semua file halaman login hotspot ada di folder hotspot. Agar bisa mengedit

Cara Mengatasi Masalah System Doesn't Permit To Flash BIOS

Pernah mengalami hal seperti ini ? Berarti Kita Sama... :D tapi jangan cemas, masalah bukan berasal dari mainboar agan2 sekalian... beberapa hari yang lalu temen ane dengan laptop Asus x43u, datang bawa masalah kaya gini, pertama ane kira batre biosnya yang udah suak, terus ane bongkar dah tu laptop, sudah capek bongkar ternya tidak salah duga, bukan batrenya yang suak, ringkas cerita ane mulai pusing ngak tau mau ngomong apa sama temen ane udah jauh jauh datang masa nga ada hasil, ane sebagai alumnus IT meskipun konsentrasinya bukan perangkat keras tapi kan malu kalau masalah seperti ini ngak sanggup pecahin, trus ane pasang lagi tu laptop, sebelum ane pasang keyboard ane coba idupin tu laptop eh kok langsung bisa booting dengan normal, ternyata masalahnya ada di keyboard, untuk agan agan atau temen temen yang punya masalah seperti yang ane dapet, coba buka keyboard laptop agan yang bermasalah tersebut, kalau dalam keadaan tanpa keyboard laptop agan bisa berfungsi normal lag

Download Gratis Aplikasi Karaoke Dzone 8 Pro

DZONE 8 XTREME PRO - Software yang selalu menjadi incaran para penikmat karaoke.Tampil baru dengan fitur single layer,dual layer,movie,dan tools untuk tampilan depan.Untuk proteksi nya tidak bisa diragukan lagi,balutan mxprotector,icekey untuk generate serialnya.Masih ditambah enigma dan dongle untuk balutan exe nya.Yang jadi pertanyaan apakah dzone versi baru atau yang sekarang berubah nama menjadi XD MULTIMEDIA tidak bisa dijalankan di pc dengan spec ala kadarnya ?? Bisa jadi...Karena menurut saya sendiri sih,proteksi yang terlalu berlebihan di exe akan menghabiskan banyak memory di windows.jadi spec PC yg ngepas biasanya sering bikin hang.Permasalahan yang sering timbul biasanya tidak jauh-jauh dari kecilnya VGA,memory,dan hard disk. Tanya : Apakah dzone cukup bagus yahh,buat koleksi pribadi saya ?? karena search software karaoke di google pun ujung2 nya lari ke dzone...berarti bagus donk.. Jawaban : Bagus ga sesuaikan dengan kebutuhan anda,uang anda