Laporan Praktikum Mobile Application Development: Share Preference
Laporan Praktikum Mobile Application Development: Share Preference
HENDRA PRABOWO
1355301041
Pada praktikum kali ini mahasiswa diharapkan memahami proses penyimpanan data
di android dan memahami mekanisme Shared Preference
B. Praktikum
Latihan 1 : Share Preference
-
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#ff0f0f">
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dip">
<EditText
android:hint="nama"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/nama" />
<EditText
android:hint="alamat"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/alamat" />
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<Button
android:text="simpan"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/simpan"
android:layout_weight="0.5" />
<Button
android:text="batal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/batal"
android:layout_weight="0.5" />
</LinearLayout>
</LinearLayout>
<ListView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/list_data" />
</LinearLayout>
package com.example.sharepreference;
import java.util.HashMap;
import java.util.Map;
import
import
import
import
import
import
import
import
import
import
import
import
import
import
import
android.os.Bundle;
android.app.Activity;
android.app.AlertDialog;
android.content.Context;
android.content.DialogInterface;
android.content.SharedPreferences;
android.view.Menu;
android.view.View;
android.view.View.OnClickListener;
android.widget.AdapterView;
android.widget.AdapterView.OnItemClickListener;
android.widget.ArrayAdapter;
android.widget.Button;
android.widget.EditText;
android.widget.ListView;
simpanData(nama.getText().toString().trim(),
alamat.getText().toString().trim());
}
}
});
LoadData();
list.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> a, View v, int pos, long id) {
onClickList(pos);
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
void deleteData(String key, boolean all) {
editSharedPref = sharedPref.edit();
if (!all){
editSharedPref.remove(key);
}
else{
editSharedPref.clear();
editSharedPref.commit();
}
}
AlertDialog alert;
public void onClickList (final int pos) {
final CharSequence[] items = new String[] {"update", "delete", "delete all"};
alert = new
AlertDialog.Builder(this).setIcon(R.drawable.ic_launcher).setTitle("Pilihan").setSingleChoi
ceItems(items, 0, new DialogInterface.OnClickListener() {
public void onClick (DialogInterface dialog, int item) {
switch(item) {
case 0:
break;
case 1:
String[] res = isiList[pos].split("#");
deleteData(res[0], false);
break;
case 2:
String[] res2 = isiList[pos].split("#");
deleteData(res2[0], false);
break;
}
alert.cancel();
LoadData();
}}).create();
alert.show();
}
String[] isiList;
Map<String, String> data = new HashMap<String, String>();
@SuppressWarnings("unchecked")
void LoadData() {
data = new HashMap<String, String>();
data = (Map<String, String>) sharedPref.getAll();
isiList = new String[data.size()];
sharedPref.getString(KEY_NAMA, "");
sharedPref.getString(KEY_ALAMAT, "");
int j = 0;
for (String s : data.keySet()) {
isiList[j] = s + "#" + data.get(s);
j++;
}
list.setAdapter(new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, isiList));
}
@SuppressWarnings("unchecked")
void simpanData(String nama, String alamat) {
data = new HashMap<String, String>();
data = (Map<String, String>) sharedPref.getAll();
int size = data.size();
editSharedPref = sharedPref.edit();
String datafull = nama + "#" + alamat;
data = new HashMap<String, String>();
size++;
data.put(Integer.toString(size), datafull);
for (String s : data.keySet()) {
editSharedPref.putString(s,
data.get(s));
}
editSharedPref.commit();
LoadData();
}
}
Latihan 2 : SharePrefLogin
- Desain lah file activity_main.xml
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#FFFFFF"
android:orientation="vertical" >
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_margin="20dp"
android:layout_marginTop="50dp"
android:background="@android:color/darker_gray" >
<TextView
android:id="@+id/tvsign"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_margin="10dp"
android:text="Header"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="@android:color/black" />
<TextView
android:id="@+id/tvusername"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/tvsign"
android:layout_margin="10dp"
android:text="Username"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="#ff0f0f"
android:textStyle="bold" />
<EditText
android:id="@+id/etusername"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/tvusername"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:inputType="none" />
<TextView
android:id="@+id/tvpassword"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/etusername"
android:layout_margin="10dp"
android:text="Password"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="#ff0f0f"
android:textStyle="bold" />
<EditText
android:id="@+id/etpass"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/tvpassword"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:inputType="textPassword" />
<CheckBox
android:id="@+id/chksingin"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/etpass"
android:layout_marginLeft="10dp"
android:layout_marginTop="10dp"
android:text="Tetap Masuk"
android:textColor="@android:color/black" />
<Button
android:id="@+id/btnsignin"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/chksingin"
android:layout_marginLeft="10dp"
android:layout_marginTop="10dp"
android:background="@drawable/ic_launcher"
android:text="Sign"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="@android:color/white" >
</Button>
<Button
android:id="@+id/btnclear"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/chksingin"
android:layout_marginLeft="10dp"
android:layout_marginTop="10dp"
android:layout_toRightOf="@+id/btnsignin"
android:background="@drawable/ic_launcher"
android:text="Clear Data"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="@android:color/black" >
</Button>
</RelativeLayout>
</RelativeLayout>
package com.example.sharepreflogin;
import
import
import
import
import
import
import
import
import
import
import
android.os.Bundle;
android.app.Activity;
android.content.Context;
android.content.SharedPreferences;
android.view.Menu;
android.view.View;
android.view.View.OnClickListener;
android.widget.Button;
android.widget.CheckBox;
android.widget.EditText;
android.widget.Toast;
} });
}
private void showToast(String msg) {
Toast.makeText(MainActivity.this, msg, Toast.LENGTH_LONG).show();
}
}
Hasil output :
Latihan 1 :
Latihan 2: