Senin, 09 Januari 2017

JSON XML Parsing + Android Code List Basic



Penampakannya sbb:

Saat kita menekan tombol menu akan muncul tampilan ADD New Data

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

    <ListView
        android:id="@android:id/list"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"/>

</LinearLayout>


listitembasic.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="wrap_content"
    android:orientation="vertical" >

    <!-- txtdata1 - akan di sembunyikan - digunakan untuk mengirim variabel ke activity lain -->
    <TextView
        android:id="@+id/txtdata1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:visibility="gone" />

    <!-- Name Label -->
    <TextView
        android:id="@+id/txtdata2"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:paddingTop="6dip"
        android:paddingLeft="6dip"
        android:textSize="17dip"
        android:textStyle="bold" />
 
  <!-- txtdata3- akan di sembunyikan - digunakan untuk mengirim variabel ke activity lain -->
     <TextView
        android:id="@+id/txtdata3"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:visibility="gone" />

</LinearLayout>


mahasiswalist.java
package com.lp2m.crudjson;

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

import org.apache.http.NameValuePair;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import com.lp2m.crudjson.R;

import android.app.ListActivity;
import android.app.ProgressDialog;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.TextView;

public class MahasiswaList extends ListActivity {
String ip="";

private ProgressDialog pDialog;
JSONParser jParser = new JSONParser();
JSONArray myJSON = null;

ArrayList<HashMap<String, String>> arrayList;
private static final String TAG_SUKSES = "sukses";
private static final String TAG_record = "record";

private static final String TAG_kode_mahasiswa = "kode_mahasiswa";
private static final String TAG_nama = "nama";

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.listbasic);
arrayList = new ArrayList<HashMap<String, String>>();
ip=jParser.getIP();

new load().execute();

ListView lv = getListView();
lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,int position, long id) {
String pk = ((TextView) view.findViewById(R.id.txtdata1)).getText().toString();
Intent i = new Intent(getApplicationContext(), Mahasiswa.class);
i.putExtra("pk", pk);
startActivityForResult(i, 100);
}});
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == 100) {// jika result code 100
Intent intent = getIntent();
finish();
startActivity(intent);
}
}

class load extends AsyncTask<String, String, String> {
@Override
protected void onPreExecute() {
super.onPreExecute();
pDialog = new ProgressDialog(MahasiswaList.this);
pDialog.setMessage("Load data. Silahkan Tunggu...");
pDialog.setIndeterminate(false);
pDialog.setCancelable(false);
pDialog.show();
}
protected String doInBackground(String... args) {
List<NameValuePair> params = new ArrayList<NameValuePair>();
JSONObject json = jParser.makeHttpRequest(ip+"mahasiswa_show.php", "GET", params);
Log.d("show: ", json.toString());
try {
int sukses = json.getInt(TAG_SUKSES);
if (sukses == 1) {
myJSON = json.getJSONArray(TAG_record);
for (int i = 0; i < myJSON.length(); i++) {
JSONObject c = myJSON.getJSONObject(i);
String kode_mahasiswa= c.getString(TAG_kode_mahasiswa);
String nama = c.getString(TAG_nama);

HashMap<String, String> map = new HashMap<String, String>();
map.put(TAG_kode_mahasiswa, kode_mahasiswa);
map.put(TAG_nama, nama);

arrayList.add(map);
}
} else {
Intent i = new Intent(getApplicationContext(),Mahasiswa.class);
i.putExtra("pk", "");
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);
}
}
catch (JSONException e) {e.printStackTrace();}
return null;
}

protected void onPostExecute(String file_url) {
pDialog.dismiss();
runOnUiThread(new Runnable() {
public void run() {
ListAdapter adapter = new SimpleAdapter(MahasiswaList.this, arrayList,R.layout.listitembasic, new String[] { TAG_kode_mahasiswa,TAG_nama},new int[] { R.id.txtdata1, R.id.txtdata2});
setListAdapter(adapter);
}
});}
}

public boolean onCreateOptionsMenu(Menu menu) {
        menu.add(0, 1, 0, "Add New").setIcon(R.drawable.add);
        return true;
    }

    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
        case 1:      
        Intent i = new Intent(getApplicationContext(), Mahasiswa.class);
i.putExtra("pk", "");
startActivityForResult(i, 100);
            return true;
        }
        return false;
    }

 
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
finish();
return true;
}
return super.onKeyDown(keyCode, event);
}

}





Tidak ada komentar:

Posting Komentar