AndroidPHPMySQLdenganActionBar PDF
AndroidPHPMySQLdenganActionBar PDF
Aplikasi Android saat ini untuk user interface sudah semakin baik, Salah satunya adalah
pemanfaatan Action Bar. Nah pada kesempatan kali ini kita akan buat aplikasi yang dapat
menampilkan, menambah, edit dan menghapus data yang ada pada database MySQL. Bahasa
kerennya CRUD Android PHP MySQL. Kita menggunakan PHP untuk akses ke database MySQL.
Mari kita mulai pembuatanya. Dan ikuti langkah-langah berikut
a. connection.php
<?php
$conn = mysql_connect('localhost', 'root', '') or die(mysql_error());
$db = mysql_select_db('db_phone') or die(mysql_error());
?>
Berfungsi sebagai script untu membuat koneksi kedatabase sehingga untuk setiap php yang ingin
connect database cukup dengan mengincludekan file ini.
b. list_phone.php
<?php
include('connection.php');
$query = 'select id, phone_name nama, price harga from tbl_phone';
$result = mysql_query($query) or die(mysql_error());
$data = array();
while($row = mysql_fetch_object($result)){
$data['handphone'][]= $row;
}
echo json_encode($data);
?>
berfungsi untuk mendapatkan data dari table tbl_phone untuk ditampilkan dalam listview di android
?>
Berfungsi untuk menyimpan data kedatabase termasuk memasukkan data abaru atau mengupdate
nilai dari data yang lama
d. delete_phone.php
<?php
include('connection.php');
$id = (int)$_POST['id'];
$query = 'delete from tbl_phone where id = '.$id;
$result = mysql_query($query) or die(mysql_error());
if(mysql_affected_rows() > 0){
echo 'Delete Data Success';
}else{
echo '';
}
?>
e. index.php
<html>
<head>
<title>Index Harga Handphone</title>
</head>
<body>
<h3>Selamat Datang di Webstite Harga HP</h3>
</body>
</html>
3. Kita sudah selesai mengerakan pada sisi server yaitu database dan phpnya untuk memastikan
bahwa dari emulator android bisa terhubung dengan server buka browser android lalu ketikan
address http://10.0.2.2/xphone.php
Pekerjaan pada sisi client Android
1. Buat NewProject dengan nama HargaHPOnline
Klik Next sampai finish, hasilnya dipakage explorer akan ada project baru yang kita buat.
2. Buat Package net.agusharyanto.hargahponline.model didalam package tersebut buatlah class
Handphone.java untuk Object Handphone
Lalu pada class tersebut ketikan code berikut
package net.agusharyanto.hargahponline.model;
public Handphone() {
super();
}
Class ini berfungsi sebagai objek yang bisa mewakili isi tbl_phone
import java.util.ArrayList;
import java.util.List;
import net.agusharyanto.hargahponline.adapter.ListAdapterHandphone;
import net.agusharyanto.hargahponline.model.Handphone;
import net.agusharyanto.hargahponline.server.AsyncInvokeURLTask;
import org.apache.http.NameValuePair;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.SearchManager;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.ActionMode;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView.OnItemLongClickListener;
import android.widget.ListView;
import android.widget.SearchView;
import android.widget.SearchView.OnQueryTextListener;
import android.widget.Toast;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView = (ListView) findViewById(R.id.listview_main);
amCallback = new ActionMode.Callback() {
@Override
public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
return false;
}
@Override
public void onDestroyActionMode(ActionMode mode) {
actionMode = null;
}
@Override
public boolean onCreateActionMode(ActionMode mode, Menu menu) {
getMenuInflater().inflate(R.menu.activity_main_action,
menu);
return true;
}
@Override
public boolean onActionItemClicked(ActionMode mode, MenuItem item)
{
switch(item.getItemId()){
case R.id.action_menu_edit:
showUpdateForm();
break;
case R.id.action_menu_delete:
delete();
break;
}
mode.finish();
return false;
}
};
listhp = new ArrayList<Handphone>();
loadDataHP();
}
listhp.remove(listhp.indexOf(selectedList));
Toast.makeText(getApplicationContext(), "deleted",
Toast.LENGTH_SHORT).show();
}
});
builder.setNegativeButton("No", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
AlertDialog alert = builder.create();
alert.setIcon(android.R.drawable.ic_menu_delete);
alert.show();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
SearchManager searchManager = (SearchManager)
getSystemService(Context.SEARCH_SERVICE);
SearchView searchView = (SearchView)
menu.findItem(R.id.option_menu_search).getActionView();
searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
searchView.setIconifiedByDefault(false);
searchView.setOnQueryTextListener(this);
searchView.setQueryHint("nama atau nim");
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId()){
case R.id.option_menu_new:
Intent in = new Intent(getApplicationContext(), FormHandphone.class);
startActivity(in);
break;
}
return super.onOptionsItemSelected(item);
}
try {
JSONObject jsonObj = new JSONObject(response);
JSONArray jsonArray = jsonObj.getJSONArray("handphone");
Log.d(TAG, "data length: "+jsonArray.length());
Handphone handphone = null;
for(int i = 0; i < jsonArray.length(); i++){
JSONObject obj = jsonArray.getJSONObject(i);
handphone = new Handphone();
handphone.setId(obj.getInt("id"));
handphone.setNama(obj.getString("nama"));
handphone.setHarga(obj.getString("harga"));
this.listhp.add(handphone);
}
} catch (JSONException e) {
Log.d(TAG, e.getMessage());
}
@Override
public boolean onItemLongClick(AdapterView<?> adapterView, View v,
int pos, long id) {
if(actionMode != null){
return false;
}
actionMode = startActionMode(amCallback);
v.setSelected(true);
selectedList = (Handphone) adapter.getItem(pos);
return true;
}
});
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View v, int
pos,
long id) {
selectedList = (Handphone) adapter.getItem(pos);
Intent in = new Intent(getApplicationContext(),
DetailHandphone.class);
in.putExtra("id", selectedList.getId().toString());
in.putExtra("nama", selectedList.getNama());
in.putExtra("harga", selectedList.getHarga());
startActivity(in);
}
});
}
@Override
public void onPostExecute(String result) {
// TODO Auto-generated method stub
Log.d("TAG", "Login:" + result);
if (result.equals("timeout") ||
result.trim().equalsIgnoreCase("Tidak dapat Terkoneksi ke Data Base")){
Toast.makeText(getBaseContext(),
"Tidak Dapat Terkoneksi dengn Server", Toast.LENGTH_SHORT).show();
}else{
processResponse(result);
populateListView();
}
}
});
task.showdialog=true;
task.message="Load Data HP Please Wait...";
task.applicationContext =MainActivity.this;
task.mNoteItWebUrl = "list_phone.php";
task.execute();
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public void onPostExecute(String result) {
// TODO Auto-generated method stub
Log.d("TAG", "Login:" + result);
if (result.equals("timeout") ||
result.trim().equalsIgnoreCase("Tidak dapat Terkoneksi ke Data Base")){
Toast.makeText(getBaseContext(),
"Tidak Dapat Terkoneksi dengn Server", Toast.LENGTH_SHORT).show();
}else{
processResponse(result);
populateListView();
}
}
});
task.showdialog=true;
task.message="Load Data HP Harap Tunggu..";
task.applicationContext =MainActivity.this;
task.mNoteItWebUrl = "/select_all.php";
task.execute();
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public boolean onQueryTextChange(String newText) {
adapter.getFilter().filter(newText);
return true;
}
@Override
public boolean onQueryTextSubmit(String query) {
return false;
}
3. Selanjutnya kita pindah dulu kebagian layout, buka activity_main.xml lalu ketikan kode berikut
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >
<ListView
android:id="@+id/listview_main"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:dividerHeight="1dp" >
</ListView>
</RelativeLayout>
4. Buat layout baru dengan nama list_row.xml lalu ketikan kode berikut
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="5dp"
>
<TextView
android:id="@+id/text_nama"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:text="@string/app_name"
android:typeface="sans"
android:textColor="@android:color/background_dark"
android:textAppearance="?android:attr/textAppearanceLarge" />
<TextView
android:id="@+id/text_harga"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/text_nama"
android:layout_alignBottom="@+id/text_nama"
android:layout_alignParentRight="true"
android:text="harga"
android:textColor="@android:color/background_dark" />
</RelativeLayout>
layout ini digunakan untuk menggambar data yang akan ditampilkan di listview
import java.util.ArrayList;
import java.util.List;
import net.agusharyanto.hargahponline.R;
import net.agusharyanto.hargahponline.model.Handphone;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Filter;
import android.widget.Filterable;
import android.widget.TextView;
@Override
public int getCount() {
return filterd.size();
}
@Override
public Object getItem(int position) {
return filterd.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if(convertView == null){
LayoutInflater inflater = LayoutInflater.from(this.context);
convertView = inflater.inflate(R.layout.list_row, null);
}
Handphone hp = filterd.get(position);
TextView textNama = (TextView) convertView.findViewById(R.id.text_nama);
textNama.setText(hp.getNama());
return convertView;
}
@Override
public Filter getFilter() {
HandphoneFilter filter = new HandphoneFilter();
return filter;
}
@Override
protected FilterResults performFiltering(CharSequence constraint) {
List<Handphone> filteredData = new ArrayList<Handphone>();
FilterResults result = new FilterResults();
String filterString = constraint.toString().toLowerCase();
for(Handphone hp: list){
if(hp.getNama().toLowerCase().contains(filterString)){
filteredData.add(hp);
}
}
result.count = filteredData.size();
result.values = filteredData;
return result;
}
@Override
protected void publishResults(CharSequence constraint, FilterResults
results) {
filterd = (List<Handphone>) results.values;
notifyDataSetChanged();
}
}
6. Selanjutnya kita siapkan String-string yang digunakan dalam aplikasi
<?xml version="1.0" encoding="utf-8"?>
<resources>
</resources>
/>
</menu>
b. activity_main.xml
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/option_menu_search"
android:title="@string/option_menu_search"
android:icon="@android:drawable/ic_menu_search"
android:showAsAction="ifRoom|collapseActionView"
android:actionViewClass="android.widget.SearchView"
/>
<item
android:id="@+id/option_menu_new"
android:title="@string/option_menu_new"
android:icon="@android:drawable/ic_menu_add"
android:showAsAction="ifRoom|withText"
/>
</menu>
c. form_handphone.xml
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/option_menu_save"
android:title="@string/option_menu_save"
android:icon="@android:drawable/ic_menu_save"
android:showAsAction="ifRoom|withText"
/>
</menu>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/tv_nama" />
<EditText
android:id="@+id/add_new_nama"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/hint_nama"
android:layout_marginBottom="30dp"
android:ems="10" />
<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Harga" />
<EditText
android:id="@+id/add_new_harga"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/hint_harga"
android:inputType="textPhonetic"
android:layout_marginBottom="30dp"
android:ems="10" />
</LinearLayout>
</ScrollView>
9. Pada directory res buat layout baru dengan nama activity_detail_handphone.xml
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:layout_margin="5dp"
tools:context=".DetailHandphone"
android:id="@+id/scrollView1" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/tv_nama" />
<EditText
android:id="@+id/add_new_nama"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/hint_nama"
android:enabled="false"
android:layout_marginBottom="30dp"
android:ems="10" />
<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/tv_harga" />
<EditText
android:id="@+id/add_new_harga"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/hint_harga"
android:layout_marginBottom="30dp"
android:enabled="false"
android:ems="10" />
</LinearLayout>
</ScrollView>
import java.util.ArrayList;
import java.util.List;
import net.agusharyanto.hargahponline.adapter.ListAdapterHandphone;
import net.agusharyanto.hargahponline.model.Handphone;
import net.agusharyanto.hargahponline.server.AsyncInvokeURLTask;
import org.apache.http.NameValuePair;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.SearchManager;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.ActionMode;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView.OnItemLongClickListener;
import android.widget.ListView;
import android.widget.SearchView;
import android.widget.SearchView.OnQueryTextListener;
import android.widget.Toast;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView = (ListView) findViewById(R.id.listview_main);
amCallback = new ActionMode.Callback() {
@Override
public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
return false;
}
@Override
public void onDestroyActionMode(ActionMode mode) {
actionMode = null;
}
@Override
public boolean onCreateActionMode(ActionMode mode, Menu menu) {
getMenuInflater().inflate(R.menu.activity_main_action,
menu);
return true;
}
@Override
public boolean onActionItemClicked(ActionMode mode, MenuItem item)
{
switch(item.getItemId()){
case R.id.action_menu_edit:
showUpdateForm();
break;
case R.id.action_menu_delete:
delete();
break;
}
mode.finish();
return false;
}
};
listhp = new ArrayList<Handphone>();
loadDataHP();
}
listhp.remove(listhp.indexOf(selectedList));
Toast.makeText(getApplicationContext(), "deleted",
Toast.LENGTH_SHORT).show();
}
});
builder.setNegativeButton("No", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
AlertDialog alert = builder.create();
alert.setIcon(android.R.drawable.ic_menu_delete);
alert.show();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
SearchManager searchManager = (SearchManager)
getSystemService(Context.SEARCH_SERVICE);
SearchView searchView = (SearchView)
menu.findItem(R.id.option_menu_search).getActionView();
searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
searchView.setIconifiedByDefault(false);
searchView.setOnQueryTextListener(this);
searchView.setQueryHint("nama atau nim");
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId()){
case R.id.option_menu_new:
Intent in = new Intent(getApplicationContext(), FormHandphone.class);
startActivity(in);
break;
}
return super.onOptionsItemSelected(item);
}
try {
JSONObject jsonObj = new JSONObject(response);
JSONArray jsonArray = jsonObj.getJSONArray("handphone");
Log.d(TAG, "data length: "+jsonArray.length());
Handphone handphone = null;
for(int i = 0; i < jsonArray.length(); i++){
JSONObject obj = jsonArray.getJSONObject(i);
handphone = new Handphone();
handphone.setId(obj.getInt("id"));
handphone.setNama(obj.getString("nama"));
handphone.setHarga(obj.getString("harga"));
this.listhp.add(handphone);
}
} catch (JSONException e) {
Log.d(TAG, e.getMessage());
}
@Override
public boolean onItemLongClick(AdapterView<?> adapterView, View v,
int pos, long id) {
if(actionMode != null){
return false;
}
actionMode = startActionMode(amCallback);
v.setSelected(true);
selectedList = (Handphone) adapter.getItem(pos);
return true;
}
});
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View v, int
pos,
long id) {
selectedList = (Handphone) adapter.getItem(pos);
Intent in = new Intent(getApplicationContext(),
DetailHandphone.class);
in.putExtra("id", selectedList.getId().toString());
in.putExtra("nama", selectedList.getNama());
in.putExtra("harga", selectedList.getHarga());
startActivity(in);
}
});
}
@Override
public void onPostExecute(String result) {
// TODO Auto-generated method stub
Log.d("TAG", "Login:" + result);
if (result.equals("timeout") ||
result.trim().equalsIgnoreCase("Tidak dapat Terkoneksi ke Data Base")){
Toast.makeText(getBaseContext(),
"Tidak Dapat Terkoneksi dengn Server", Toast.LENGTH_SHORT).show();
}else{
processResponse(result);
populateListView();
}
}
});
task.showdialog=true;
task.message="Load Data HP Please Wait...";
task.applicationContext =MainActivity.this;
task.mNoteItWebUrl = "list_phone.php";
task.execute();
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public void onPostExecute(String result) {
// TODO Auto-generated method stub
Log.d("TAG", "Login:" + result);
if (result.equals("timeout") ||
result.trim().equalsIgnoreCase("Tidak dapat Terkoneksi ke Data Base")){
Toast.makeText(getBaseContext(),
"Tidak Dapat Terkoneksi dengn Server", Toast.LENGTH_SHORT).show();
}else{
processResponse(result);
populateListView();
}
}
});
task.showdialog=true;
task.message="Load Data HP Harap Tunggu..";
task.applicationContext =MainActivity.this;
task.mNoteItWebUrl = "/select_all.php";
task.execute();
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public boolean onQueryTextChange(String newText) {
adapter.getFilter().filter(newText);
return true;
}
@Override
public boolean onQueryTextSubmit(String query) {
return false;
}
import java.util.ArrayList;
import net.agusharyanto.hargahponline.model.Handphone;
import net.agusharyanto.hargahponline.server.AsyncInvokeURLTask;
import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
import android.app.ActionBar;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.EditText;
import android.widget.Toast;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_detail_handphone);
handphone = new Handphone();
initView();
ActionBar actionBar = getActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);
}
String id = getIntent().getStringExtra("id");
String nama = getIntent().getStringExtra("nama");
String harga = getIntent().getStringExtra("harga");
textNama.setText(nama);
textHarga.setText(harga);
handphone.setId(Integer.valueOf(id));
handphone.setNama(nama);
handphone.setHarga(harga);
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main_action, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId()){
case android.R.id.home:
goToMainActivity();
break;
case R.id.action_menu_edit:
Intent in = new Intent(getApplicationContext(),
FormHandphone.class);
in.putExtra("id", handphone.getId().toString());
in.putExtra("nama", handphone.getNama());
in.putExtra("harga", handphone.getHarga());
startActivity(in);
break;
case R.id.action_menu_delete:
delete();
break;
}
return super.onOptionsItemSelected(item);
}
@Override
public void onPostExecute(String result) {
} catch (Exception e) {
e.printStackTrace();
}
}
import java.net.URLEncoder;
import java.util.ArrayList;
import net.agusharyanto.hargahponline.model.Handphone;
import net.agusharyanto.hargahponline.server.AsyncInvokeURLTask;
import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
import android.app.ActionBar;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.EditText;
import android.widget.Toast;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_form_handphone);
initView();
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.form_handphone, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId()){
case android.R.id.home:
goToMainActivity();
break;
case R.id.option_menu_save:
if(textHarga.getText().toString().trim().isEmpty() ||
textNama.getText().toString().trim().isEmpty()){
Toast.makeText(getApplicationContext(), "Nama dan Harga
tidak boleh kosong", Toast.LENGTH_SHORT).show();
}else{
sendData();
}
break;
}
return super.onOptionsItemSelected(item);
}
@Override
public void onPostExecute(String result) {
// TODO Auto-generated method stub
Log.d("TAG", "savedata:" + result);
if (result.equals("timeout") ||
result.trim().equalsIgnoreCase("Tidak dapat Terkoneksi ke Data Base")){
}else{
goToMainActivity();
}
}
});
task.showdialog=true;
task.message="Proses Submit Data Harap Tunggu..";
task.applicationContext =FormHandphone.this;
task.mNoteItWebUrl = urlSubmit;
task.execute();
} catch (Exception e) {
e.printStackTrace();
}
}
<uses-sdk
android:minSdkVersion="11"
android:targetSdkVersion="19" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="net.agusharyanto.hargahponline.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
</manifest>
Untuk menambah data bisa sentuh tombol Add pada Action Bar.
Untuk Cari data sentuh tombol search pada Action Bar.
Untuk Edit / Delete data bisa sentuh salah satu baris daftar handphone.