Menampilkan Data Ke ListView

tutorial kali ini yang akan di bahas adalah membaca data dari server dan di tampilkan ke listview, seperti biasa, buat project baru android, dan buat file PHP untuk melakukan menampilkan semua data, lebih lengkapnya lihat kode di bawah :

select_all.php

<?php
$link = mysql_connect('localhost', 'root', 'root') or die('Cannot connect to the DB');
mysql_select_db('penerimaan_siswa_baru1', $link) or die('Cannot select the DB');
/* grab the posts from the db */
$query = "SELECT * FROM siswa_diterima";
$result = mysql_query($query, $link) or die('Errorquery:  '.$query);
$rows = array();
while ($r = mysql_fetch_assoc($result)) {
    $rows[] = str_replace('(=','', $r);
}
$data = "{master:".json_encode($rows)."}";
echo $data;
?>



kemudian buat layout androidnya :

activity_main.xml


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
  
      >
     
    <ListView
        android:id="@id/android:list"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:divider="@android:color/transparent"
        android:drawSelectorOnTop="false"
      />
   
    <TextView
        android:id="@id/android:empty"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="No data" />

    <EditText
        android:id="@+id/inputSearch"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:ems="10"
        android:hint="Cari Nama Siswa.."
        android:inputType="textVisiblePassword" >
        <requestFocus />
  </EditText>
</LinearLayout>

row.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:padding="7dp" >

    <TextView
        android:id="@+id/nama_lengkapx"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceLarge"
        
        android:textSize="30dp" />
    <TextView
        android:id="@+id/no_induk"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:padding="2dp"
        android:textColor="#00FF00"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:textSize="10dp" />

    <TextView
        android:id="@+id/id_pendaftar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:padding="2dp"
        android:textColor="#00FF00"
        android:textSize="10dp" />
    
      <TextView
        android:id="@+id/kelas"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:padding="2dp"
        android:textColor="#00FF00"
        android:textSize="10dp" />
     
       <TextView
        android:id="@+id/tahun_ajaran"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:padding="2dp"
        android:textColor="#00FF00"
        android:textSize="10dp" />
  

</LinearLayout>

main_activity.java

package com.example.projectpsi;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Vector;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;


import android.app.Activity;
import android.app.ListActivity;
import android.content.Intent;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.Filterable;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.TextView;
import android.widget.Toast;
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.text.TextWatcher;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.EditText;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.TextView;
import android.widget.Toast;


public class MainActivity extends ListActivity
{
     EditText inputSearch;
     ListAdapter adapter;
    //  private ListView lv;
     /** Called when the activity is first created. */
  @Override
  public void onCreate(Bundle savedInstanceState)
  {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
      inputSearch = (EditText) findViewById(R.id.inputSearch);
     // lv = (ListView) findViewById(R.id.list_view);
      ArrayList<HashMap<String, String>> mylist = new ArrayList<HashMap<String, String>>();

      JSONObject json = JSONfunctions.getJSONfromURL("http://10.0.2.2/tugasKP/index.php");

      try{

          JSONArray  master = json.getJSONArray("master");

            for(int i=0;i<master.length();i++){
                HashMap<String, String> map = new HashMap<String, String>();
                JSONObject jsonobj = master.getJSONObject(i);

                 map.put("nama_lengkap",  jsonobj.getString("nama_lengkap"));
                 map.put("no_induk_siswa",  jsonobj.getString("no_induk_siswa"));
                 map.put("id_pendaftar",  jsonobj.getString("id_pendaftar"));
                 map.put("kelas",  jsonobj.getString("kelas"));
                 map.put("tahun_ajaran",  jsonobj.getString("tahun_ajaran"));
                mylist.add(map);
            }
      }catch(JSONException e)
      {
           Log.e("log_tag", "Error parsing data "+e.toString());
      }

       adapter = new SimpleAdapter(this, mylist , R.layout.row,
              new String[] {"nama_lengkap","no_induk_siswa","id_pendaftar","kelas","tahun_ajaran"},
              new int[] { R.id.nama_lengkapx,R.id.no_induk,R.id.id_pendaftar,R.id.kelas,R.id.tahun_ajaran});
      setListAdapter(adapter);
     
      final ListView lv = getListView();
      lv.setAdapter(adapter);
      lv.setTextFilterEnabled(true);
      lv.setOnItemClickListener(new OnItemClickListener()
      {
          public void onItemClick(AdapterView<?> parent, View view, int position, long id)
          {
              try{
                  String nama_lengkap = ((TextView) view.findViewById(R.id.nama_lengkapx)).getText().toString();
                   String no_induk_siswa = ((TextView) view.findViewById(R.id.no_induk)).getText().toString();
                   String id_pendaftar = ((TextView) view.findViewById(R.id.id_pendaftar)).getText().toString();
                String kelas= ((TextView) view.findViewById(R.id.kelas)).getText().toString();
                String tahun_ajaran= ((TextView) view.findViewById(R.id.tahun_ajaran)).getText().toString();
        
              
                Intent in = new Intent(getApplicationContext(), Detail_Siswa.class);
                in.putExtra("nama_lengkap", nama_lengkap);
                in.putExtra("no_induk_siswa", no_induk_siswa);
                in.putExtra("id_pendaftar", id_pendaftar);
                in.putExtra("kelas", kelas);
                in.putExtra("tahun_ajaran", tahun_ajaran);
               
                Toast.makeText(getBaseContext(), "nama "+nama_lengkap+" terpilih",Toast.LENGTH_SHORT).show();   
                startActivity(in);
               
              }catch(Exception e)
           {
            //Toast.makeText(this, "error", Toast.LENGTH_SHORT).show();

           }
            }
        });
      inputSearch.addTextChangedListener(new TextWatcher()
      {
                
     public void onTextChanged(CharSequence cs, int arg1, int arg2, int arg3)
         {
             ((Filterable) MainActivity.this.adapter).getFilter().filter(cs);   
         }
              public void beforeTextChanged(CharSequence arg0, int arg1, int arg2,int arg3)
                 {
                
                 }
             public void afterTextChanged(Editable arg0)
                 {
                                
                 }
       });
  }
}
















JSONfunctions .java

package com.example.projectpsi;

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

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
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 JSONfunctions {

public static JSONObject getJSONfromURL(String url){
InputStream is = null;
String result = "";
JSONObject jArray = null;

//http post
try{
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(url);
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
is = entity.getContent();

}catch(Exception e){
Log.e("log_tag", "Error in http connection "+e.toString());
}

//convert response to string
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();
result=sb.toString();
}catch(Exception e){
Log.e("log_tag", "Error converting result "+e.toString());
}

try{

jArray = new JSONObject(result);
}catch(JSONException e){
Log.e("log_tag", "Error parsing data "+e.toString());
}

return jArray;
}
}

Komentar

Postingan Populer