LISTVIEW
A. TUJUAN
1. Mengetahui fungsi listview.
2. Membuat project menggunakan listview.
B. URAIAN MATERI
ListView merupakan menu yang paling sering digunakan dalam membuat
berbagai aplikasi android. ListView merupakan sekumpulan list atau daftar data
yang ditampilkan dan dapat di scroll secara vertikal. Inti dari membuat listview
adalah menampung daftar data ke dalam array, kemudian dimasukkan ke adapter
dari widget listView.
Listview sendiri sangat bervariasi, namun dilihat dari tingkat kerumitannya
listview cuma ada dua yaitu simple list view dan custom listview. Di lihat dari
sumber datanya listview bisa dibagi menjadi static listview dan listview dari data
yang bersumber dari content provider. Content provider adalah segala jenis mode
penyimpanan data seperti file text, Database SQLite, Contact list ataupun data
yang diambil dari Webservice.
Adapun yang dinamakan dengan adapter. Adapter adalah class yang
mengatur item-item pada ListView. Adapter mengatur resource view pada setiap
item dari ListView. Resource view pada ListView yang ada pada sebuah tampilan
layar sebuah aplikasi memiliki jumlah resource view yang tetap sesuai dengan
item yang tampak pada layar. Pada ListView dengan tampilan scroll, resourve
view akan digunakan secara berulang (reusable) dengan mengatur item yang
tampak dan yang tersembunyi pada ListView. Adapter juga mengatur data model
dari setiap item ListView.
Untuk mengimplementasikan adapter dibutuhkan yang namanya
pagination. Kegunaan Pagination adalah untuk menampilkan sejumlah data pada
adapter. jika dalam membuat aplikasi yang isinya menampilkan semua email dan
user bisa melihat semua email dalam satu layout. Apalagi jika perharinya email
masuk lebih dari 100, nah jika kita tidak mengimplementasikan pagination, tentu
ini akan mempengaruhi performa aplikasi. Adapter akan memanggil method
getView() lalu mengembalikan sebuah view pada setiap item dengan
1
menggunakan adapter view. Method getView() ini lah yang mengatur format
layout dan kesesuaian data pada item dengan adapter view. Jika getView()
mengambalikan View baru untuk setiap waktu ketika dipanggil, ini akan
berpengaruh pada performa aplikasi. Jika kita membuat View baru sebagai
solusinya, sebenarnya ini terlalu berlebihan karena ketika view baru telah dibuat,
maka view yang lama masih akan tersimpan. Untuk itulah android memiliki fitur
yang dinamakan dengan recyles yang berfungsi untuk mendaur ulang view ini.
C. PRAKTIKUM
1. Praktikum
a. Buka aplikasi eclipse yang telah diinstal pada laptop dan tunggu
aplikasi tersebut hingga terbuka
2
b. Kemudian buat project android baru dengan cara klik new yang berada
pada menu bar lalu klik Other.
4
f. Kemudian muncul tampilan Create Activity didalam create activity ini
kita mesti mencetang create activity agar isi create activity ini masuk
semua kedalam project android. Lalu klik next
5
h. Setelah itu akan muncul tampilan activity_main dan dibawahnya terdapat
Grapical layout.
6
j. Setelah, tampilan pada graphical layout akan berubah mengikuti source
code yang telah diketik di Activiy_main.xml.
7
l. Setelah itu, muncul tampilan Select a wizard. Create an Android Activity,
kemudian pilih Android Activity seperti gambar 5.12
8
n. Setelah itu, muncul tampilan Blank Activity kemudian isi Activity Name,
Layout Name dan Tittle seperti gambar 5.14.
9
Gambar 5.15 tampilan string.xml
p. Setelah itu, klik save (CTRL+S) kembali ke activity_main munculkan
graphical layout maka tampilan activitynya akan berupa menjadi
tampilan seperti gambar 5.16
10
q. Kemudian klik MainActivity. Kemudian ketik source code seperti gambar
5.17. Source code berguna untuk menjalankan aplikasi. Fungsi Source
code ini untuk menjalankan graphical layout pada aplikasi listview dan
juga menghubungkan antara activitymain dan activitypilih
11
Gambar 5.17 Tampilan Source code MainActivity.Java
r. Kemudian klik PilihActivity.java kemudian ketik source codenya seperti
gambar 5.18. Fungsi dari source code ini untuk menjalanakn Activitypilih
dan menghubungkan antara activitymain dan activitypilih
12
s. Run aplikasi yang telah dibuat dengan cara klik kanan pada package
project activity kemudian pilih Run As lalu pilih Android Aplication
maka tampilannya akan berubah seperti gambar 5.19.
13
2. Tugas Praktikum
a. Tugas Praktikum Muhammad Jauhar Nurdiansyah
1) Dalam membuat tugas praktikum 5 yang dibuat Muhammad Jauhar
Nurdiansyah pertama-tama buat project android baru dengan cara
klik new yang berada pada menu bar lalu klik Other.
14
3) Setelah itu muncul kota dialog New Android Application isi
Application nama, project nama dan juga Package nama serta pilih
android SDKnya. Fungsi dari bagian ini adalah untuk membuat nama
aplikasi dan juga untuk memilih jenis android apa yang support
dengan aplikasi tersebut. seperti gambar 5.23
15
5) Kemudian muncul tampilan Create Activity didalam create activity
ini kita mesti mencetang create activity agas isi create activity ini
masuk semua kedalam project android. Lalu klik next
16
7) Setelah itu akan muncul tampilan activity_main dan dibawahnya
terdapat Grapical layout. Ada dua cara pembuatan user interface
untuk aplikasi android ada yang menggunakan mode grafis dan ada
mode text. Untuk pembuata UI menggunakan mode grafis kita
menggunakan palatte. Sedangkan dalam pembuatan UI
menggunakan mode text kita menggunakan kode XML. Dan pada
pembuatan user interface APKMAKANANLISTVIEW
menggunakan kedua cara yaitu dengan mode grafis dan mode text.
<LinearLayout android:id="@+id/linearLayout1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/linearLayout2"
android:layout_alignParentTop="true"
android:layout_alignRight="@+id/linearLayout2"
android:gravity="center" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:text="MENU MAKANAN"
android:textSize="15sp"
android:textStyle="bold"
17
android:typeface="serif" />
<Button
android:id="@+id/exitbutton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="80dp"
android:text="EXIT" />
</LinearLayout>
<LinearLayout
android:id="@+id/linearLayout2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/linearLayout1" >
<ListView
android:id="@+id/MakananListView"
android:layout_width="match_parent"
android:layout_height="229dp" >
</ListView> </LinearLayout>
<LinearLayout
android:id="@+id/linearLayout3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/linearLayout2"
android:layout_centerHorizontal="true"
android:layout_marginTop="15dp"
android:orientation="vertical" >
<TextView
android:id="@+id/tambah"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TAMBAHAKAN MENU MAKANAN"
android:textSize="15sp"
android:textStyle="bold"
android:typeface="serif" />
<EditText
android:id="@+id/editText1"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<Button
android:id="@+id/button1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="TAMBAHKAN" />
</LinearLayout>
18
9) Setelah itu save all kemudian akan muncul tampilan seperti gambar
dibawah 5.29.
19
11) Setelah muncul tampilan Create Activity pilih Blank Activity karena
kita akan menggunakan blank activity.
20
13) Kemudian muncul graphical layout pada aplikasi android
activity_makanan_dipilih seperti gambar 5.33
<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical" >
<TextView
android:id="@+id/TextView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Makanan Yang Dipilih"
android:textSize="20sp"
android:textStyle="bold"
android:typeface="serif"
android:textColor="#ffffff"/>
<TextView
android:id="@+id/MakananTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Makanan"
21
android:textSize="20sp"
android:textStyle="bold"
android:typeface="serif"
android:textColor="#ffffff"/>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_below="@+id/linearLayout1"
android:gravity="center" >
<Button
android:id="@+id/kembalibutton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="KEMBALI"
android:textColor="#ffffff"/>
</LinearLayout>
22
16) Untuk merubah background pada graphic layout pertama-tama
masukkan background dengan cara klik project
APKMAKANANLISTVIEW >> res >> drawable ldpi kemudian
copy gambar yang diinginkan menjadi background
23
18) Kemudian untuk menerapkan background tersebut kembali ke
activity_main pilih activity_makanan_dipilih.xml kemudian ketik
source android:background="@drawable/pilih"
24
20) Klik save(CTRL+S) kemudian tampilan pada graphical layout akan
berubah mengikitu background yang dimasukkan tadi di
activity_main.xml gambar di 5.40
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import android.os.Bundle;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView.OnItemLongClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.Toast;
25
public class MainActivity extends Activity implements
OnClickListener, OnItemClickListener{
private java.util.ArrayList<String> items = new
java.util.ArrayList<String>();
private ListView MakananListView;
private EditText tambah;
private Button Addbutton, btnExit, btnHome;
private String[] listMakanan = {"Ramen", "Nasi Kare",
"Sushi", "Onigiri"};
private List<String> food_list = new
ArrayList<String>(Arrays.asList(listMakanan));
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findViewById(R.id.exitbutton).setOnClickListener(this);
MakananListView = (ListView)
findViewById(R.id.MakananListView);
tambah = (EditText) findViewById(R.id.editText1);
Addbutton = (Button) findViewById(R.id.button1);
btnExit = (Button) findViewById(R.id.exitbutton);
MakananListView.setOnItemClickListener(this);
MakananListView.setLongClickable(true);
Addbutton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
food_list.add(tambah.getText().toString());
adapter.notifyDataSetChanged();
}
});
MakananListView.setOnItemLongClickListener(new
OnItemLongClickListener(){
@Override
public boolean onItemLongClick(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
// TODO Auto-generated method stub
AlertDialog.Builder alert = new
AlertDialog.Builder(MainActivity.this);
alert.setTitle("Informasi");
alert.setMessage("Makanan"+food_list.get(arg2));
alert.setIcon(R.drawable.ic_launcher);
26
alert.setPositiveButton("Ya", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
@Override
public void onClick(DialogInterface dialog, int which) {
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.TextView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_makanan_dipilih);
TextView MakananTV = (TextView)
findViewById(R.id.MakananTextView);
MakananTV.setText(getIntent().getExtras().getString("Makanan"));
findViewById(R.id.kembalibutton).setOnClickListener(this);
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch(v.getId()){
case R.id.kembalibutton:
finish();
}
}
}
<LinearLayout android:id="@+id/linearLayout1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/linearLayout2"
android:layout_alignParentTop="true"
android:layout_alignRight="@+id/linearLayout2"
android:gravity="center" >
<TextView android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Menu Makanan"
android:textColor="@color/Hitam"
android:textSize="19sp"
android:typeface="sans" />
</LinearLayout>
<LinearLayout
android:id="@+id/linearLayout2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/linearLayout1" >
<ListView
android:id="@+id/MakananListView"
android:layout_width="match_parent"
android:layout_height="245dp" >
</ListView>
</LinearLayout>
<LinearLayout
android:id="@+id/linearLayout3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/linearLayout2"
android:layout_centerHorizontal="true"
android:layout_marginTop="15dp"
android:orientation="vertical" >
<TextView android:id="@+id/tambah"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Tambahkan Menu Makanan"
android:textColor="@color/Hitam"
android:textSize="15sp"
android:typeface="sans" />
<EditText android:id="@+id/editText1"
android:layout_width="match_parent"
android:layout_height="30dp"
android:textSize="15sp" />
</LinearLayout>
<LinearLayout android:id="@+id/linearLayout4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/linearLayout3"
android:layout_centerHorizontal="true" >
<Button android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Tambahkan"
android:textSize="15sp"
android:typeface="sans" />
<Button android:id="@+id/exitbutton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Kembali"
android:textSize="15sp"
android:typeface="sans" />
</LinearLayout>
<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerInParent="true"
android:orientation="vertical" >
<TextView
android:id="@+id/TextView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Makanan Yang Dipilih"
android:textColor="@color/Putih"
android:textSize="20sp" />
<TextView
android:id="@+id/MakananTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="Makanan"
android:textColor="@color/Putih"
android:textSize="20sp" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_below="@+id/linearLayout1"
android:gravity="center" >
<Button
android:id="@+id/kembalibutton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="KEMBALI"
android:textColor="@color/Putih" />
</LinearLayout>
<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"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:background="@drawable/makan1"
tools:context="com.unpam.tugas5.MainActivity" >
<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"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:background="@drawable/makan2"
tools:context="com.unpam.tugas5.Pilihmakanan" >
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import android.os.Bundle;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView.OnItemLongClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.Toast;
@Override
public void onClick(View v) {
// TODO Auto-generated
method stub
food_list.add(tambah.getText().toString());
adapter.notifyDataSetChanged();
}
});
MakananListView.setOnItemLongClickListener(new
OnItemLongClickListener(){
@Override
public boolean
onItemLongClick(AdapterView<?> arg0, View arg1, int arg2, long
arg3) {
// TODO Auto-generated method stub
AlertDialog.Builder alert = new
AlertDialog.Builder(MainActivity.this);
alert.setTitle("Informasi");
alert.setMessage("Makanan"+food_list.get(arg2));
alert.setIcon(R.drawable.ic_launcher);
alert.setPositiveButton("Ya", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.TextView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_pilihmakanan);
TextView MakananTV = (TextView)
findViewById(R.id.MakananTextView);
MakananTV.setText(getIntent().getExtras().getString("Makanan"));
findViewById(R.id.kembalibutton).setOnClickListener(this);
}
public boolean onCreateOptionMenu(Menu menu){
getMenuInflater().inflate(R.menu.pilihmakanan,
menu);
return true;
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch(v.getId()){
case R.id.kembalibutton:
finish();
}
}
}