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

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 ...

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 Topaz Labs Terbaru + Crack + Serial Number

Topaz Photoshop Plugins Bundle 32 bit dan 64 bit Rilisan 05-10-2010 Sudah termasuk Topaz Adjust 4.1.0,Topaz Simplify 3.0.2 ,Topaz Detail 2.0.5,Topaz DeNoise 5.0.1,Topaz ReMask 2.0.5 ,Topaz Clean 3.0.2 ,Topaz DeJPEG 4.0.2 . Membuat Eksposur Foto anda, detail, dan Sesuaikan warna pop dengan Topaz Adjust Membuat Berbagai efek yang menakjubkan seni painterly dengan Topaz Simplify Dapatkan Halo-dan artifact-free detail enhancements dengan Topaz Detail Hilangkan Noise tapi tetap menjaga detail dengan Topaz DeNoise Cepat dan efisien masker dan ekstrak foto dengan Topaz ReMask Membuat Foto halus atau portrait smoothing dan stylized edges dengan Topaz Clean Memperbaiki JPEG yang pecah pecah dan mengoptimalkan Gambar atau foto web dengan Topaz DeJPEG Compatibility Windows Requires Windows XP, Windows Vista, or Windows 7 (32-bit and 64-bit) Requires at least 1GB RAM, preferably more. Compatible with Adobe Photoshop CS3-CS5 (32-bit and 64-bit), Adobe Photoshop Elements 6-...