INTRODUCTION
ListActivity yaitu menyusun object secara vertikal tanpa menggunakan layout karena langsung diatur oleh activity, berbeda dengan ListView yang membutuhkan layout untuk menampilkan list.ListActivity dan ListView berbeda dalam penulisan code java tapi sama dalam hal penggunaan adapter. Posting kali ini kita mulai dari ListActivity terlebih dahulu.
ListActivity dalam hal penggunaan adapter terbagi dua, yaitu
- Menggunakan adapter default Android
- Menggunakan custom adapter, ini supaya kita lebih leluasa mengatur susunan item per list.
OK.. cekidot
SAMPLE -- LIST ACTIVITY WITH DEFAULT ADAPTER
- Buat project baru, pilih Blank Activity pada pilihan template aplikasi
- Buat layout baru, beri nama item_basic.xml, copy ini :
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/text_basic"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:padding="20dp"
android:text="Item Text"
android:textAppearance="?android:attr/textAppearanceMedium" />
- Buka MainActivity.java, hapus semua kecuali
package bla.bla.bla
- Ganti dengan ini :
import android.app.ListActivity; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.ArrayAdapter; import android.widget.ListView; import android.widget.TextView; import android.widget.Toast; public class MainActivity extends ListActivity { //membuat variable list static final String[] ANDROID_LIST = new String[] { "Alpha", "Beta", "Cupcake", "Donut", "Eclair", "Frozen yogurt", "Ginger Bread", "Honeycomb", "Ice Cream Sandwich", "Jelly Bean", "Kitkat", "Lollipop", "Marshmallow" }; //variable memanggil ArrayAdapter (default) private ArrayAdapter<String> adapter; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //memuat list melalui adapter adapter = new ArrayAdapter<String>( this, //activity R.layout.item_basic, //layout berisi textview ANDROID_LIST //memanggil list ); //set adapter setListAdapter(adapter); //set onClick ListView listView = getListView();oject baru dengan Blang Activity listView.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView<?> parent, View view, int position, long id) { // ketika di klik muncul toast Toast.makeText(getApplicationContext(),((TextView) view).getText(), Toast.LENGTH_SHORT).show(); } }); } }
Hasilnya :
SAMPLE -- LIST ACTIVITY WITH CUSTOM ADAPTER
Custom Adapter disini sangat membebaskan kita untuk menaruh lebih dari satu item untuk setiap list, bahkan bisa menambahkan gambar.- Buat project baru
- Buat layout baru, beri nama item_basic_with_image.xml
- Copy ini :
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/RelativeLayout1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:orientation="vertical" >
<ImageView
android:id="@+id/image_item"
android:layout_width="60dp"
android:layout_height="60dp"
android:padding="4dp"
android:scaleType="centerCrop"
android:src="@drawable/ic_launcher" />
<TextView
android:id="@+id/text_item"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginLeft="12dp"
android:layout_toRightOf="@id/image_item"
android:text="Medium Text"
android:textAppearance="?android:attr/textAppearanceMedium" />
</RelativeLayout>
- Download dulu bahannya disini, extract, masukkan ke res/drawable-hdpi
- Buat Class baru untuk adapternya, beri nama OsVersionAdapter.java, copy ini :
import android.app.Activity; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.ImageView; import android.widget.TextView; public class OsVersionAdapter extends ArrayAdapter<String> { private final Activity context; private final String[] osName; private final int[] img; public OsVersionAdapter(Activity context, String[] itemname, int[] img) { super(context, R.layout.item_basic_with_image, itemname); // TODO Auto-generated constructor stub this.context=context; this.osName=itemname; this.img=img; } public View getView(int position,View view,ViewGroup parent) { LayoutInflater inflater=context.getLayoutInflater(); View rowView=inflater.inflate(R.layout.item_basic_with_image, null, true); ImageView iv = (ImageView) rowView.findViewById(R.id.image_item); TextView tv = (TextView) rowView.findViewById(R.id.text_item); iv.setImageResource(img[position]); tv.setText(osName[position]); return rowView; }; }
- Buka MainActivity.java, hapus semua code kecuali package bla.bla.bla
import android.app.ListActivity; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.ListView; import android.widget.Toast; public class MainActivity extends ListActivity{ String[] itemname = { "Alpha", "Beta", "Cupcake", "Donut", "Eclair", "Frozen yogurt", "Ginger Bread", "Honeycomb", "Ice Cream Sandwich", "Jelly Bean", "Kitkat", "Lollipop", "Marshmallow" }; int[] imgid={ R.drawable.a, R.drawable.b, R.drawable.c, R.drawable.d, R.drawable.e, R.drawable.f, R.drawable.g, R.drawable.h, R.drawable.i, R.drawable.j, R.drawable.k, R.drawable.l, R.drawable.m }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); OsVersionAdapter adapter=new OsVersionAdapter(this, itemname, imgid); setListAdapter(adapter); ListView list = getListView(); list.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { String Slecteditem= itemname[+position]; Toast.makeText(getApplicationContext(), Slecteditem, Toast.LENGTH_SHORT).show(); } }); } }
Hasilnya :
Semogabermanfaat...