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

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