Haii..
Jumpa lagi nih

Beberapa waktu yang lalu kita telah memahani sedikit mengenai konsep dari suatu adapter, nah saat ini ane mencoba untuk membuat suatu adapter yang sederhana. Dimana project ini ane namain "Simple Adapter", dalam membuat project ini kita akan membutuhkan 3 buah class. Class yang pertama berupa activity, yaitu class yang digunakan untuk memanggil adapter dan yang akan menjadi main class. Class yang kedua yaitu class model, dimana pada class ini berisikan object-object yang akan kita gunakan pada adapter. Misalkan adapter yang akan dibuat berupa gambar, text dan text. Maka kita buat tiga object dengan tipe Integer, String dan String. Dan class yang terakhir adalah class adapter, pada class ini akan extends ke BaseAdapter dimana pada class inilah kita akan membuat adapter. Tidak perlu panjang lebar mari kita mulai.
Step 1. Buat android project baru.
Setelah kita membuat project baru maka akan terbentuk Class yang namanya ActivityAdapter. Untuk saat ini kita tinggal dahulu, karna class ini akan kita gunakan pada tahap terakhir.
Step 2. Buat Class "ObjectModel", pada class ini kita akan mendefinisikan/ membuat object serta getter dan setter.
package com.example.adapter;
public class ObjectModel {
private String text1;
private String text2;
private Integer image;
public String getText1() {
return text1;
}
public void setText1(String text1) {
this.text1 = text1;
}
public String getText2() {
return text2;
}
public void setText2(String text2) {
this.text2 = text2;
}
public Integer getImage() {
return image;
}
public void setImage(Integer image) {
this.image = image;
}
}
Jika kita menggunakan eclipse untuk membuat getter dan setter cukup mudah, setelah kita membuat object klik menu Source -> Generate Getters and Setter. Kemudian pilih object mana yg mau dibuat getters and setters and then Finish, jadilah getters and setter simple kan

Step 3. Buat Class baru pada package yang sama dengan nama "AdapterModel".
package com.example.adapter;
import java.util.ArrayList;
import android.app.Activity;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
public class AdapterModel extends BaseAdapter{
private ArrayList<ObjectModel> object;
private Activity activity;
public AdapterModel(ArrayList<ObjectModel> object, Activity activity) {
this.object = object;
this.activity = activity;
}
@Override
public int getCount() {
return object.size();
}
@Override
public Object getItem(int position) {
return object.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ObjectModel obj = object.get(position);
LinearLayout layout = new LinearLayout(activity);
TextView text1 = new TextView(activity);
TextView text2 = new TextView(activity);
ImageView image = new ImageView(activity);
text1.setText(obj.getText1());
text2.setText(obj.getText2());
image.setImageResource(obj.getImage());
text1.setPadding(10, 25, 5, 25);
text2.setPadding(10, 25, 5, 50);
image.setPadding(10, 0, 25, 0);
layout.setPadding(0, 5, 0, 0);
layout.addView(text1);
layout.addView(text2);
layout.addView(image);
return layout;
}
}
Code diatas menjelaskan bahwa kita membuat custome adapter dengan mengextends ke BaseAdapter dan pada class tersebut kita mendefinisikan dua buat object. Object yang pertama berupa ArrayList dengan tipe class ObjectModel, yaitu class yang telah kita buat sebelumnya. Karna nantinya kita akan membuat data dalam bentuk array. Dan object yang kedua berupa Activity, Activity ini maksudnya sapa sih yang akan menerima atau menampilkan nilai yang dikembalikan oleh adapter ini. Nah oleh karena itulah kita membuat constructor dengan parameter ArrayList dan Activity. Sewaktu kita mengextends ke BaseAdapter maka kita diwajibkan untuk mengunimplement method. Maksudnya adalah method yang harus atau wajib dan kudu dimiliki oleh class yang mengextendsnya. Method tersebuta adalah getCount(), getItem(), getItemId(), dan getView(). Method getCount() ini maksudnya adalah seberapa banyak sih data yang dimiliki oleh ArrayList tersebut dengan kata lain berapa banyak data yang harus ditampilkan oleh adapter. Method getItem(int position) method yang digunakan untuk mengetahui pada posisi data mana adapter ini bekerja. getItemId(int position) untuk mendapatkan baris Id berdasarkan posisi dari list. Dan getView()untuk menampilkan data pada list berdasarkan posisi dalam arrayList. Pada hakekatnya AdapterModel ini dilakukan secara berulang-ulang sebanyak jumlah data yang ada.
Step 4. Step terakhir, nah setelah membuat object dan adapternya mari kita kembali ke class ActivityAdapter, di class inilah kita akan menentukan data apa saja yang akan kita buat dan tentunya data kita set kedalam class "ObjectModel" dan kita simpan dalam bentuk ArrayList. Class ActivityAdapter kita rubah seperti dibawah ini
package com.example.adapter;
import java.util.ArrayList;
import android.app.Activity;
import android.os.Bundle;
import android.widget.ListView;
public class ActivityAdapter extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ArrayList<ObjectModel> object = new ArrayList<ObjectModel>();
ObjectModel object1 = new ObjectModel();
object1.setText1("Object 1");
object1.setText2("Tulisan");
object1.setImage(R.drawable.icon);
ObjectModel object2 = new ObjectModel();
object2.setText1("Object 2");
object2.setText2("Tulisan");
object2.setImage(R.drawable.icon);
ObjectModel object3 = new ObjectModel();
object3.setText1("Object 3");
object3.setText2("Tulisan");
object3.setImage(R.drawable.icon);
ObjectModel object4 = new ObjectModel();
object4.setText1("Object 4");
object4.setText2("Tulisan");
object4.setImage(R.drawable.icon);
ObjectModel object5 = new ObjectModel();
object5.setText1("Object 5");
object5.setText2("Tulisan");
object5.setImage(R.drawable.icon);
object.add(object1);
object.add(object2);
object.add(object3);
object.add(object4);
object.add(object5);
AdapterModel adap = new AdapterModel(object, this);
ListView lv = (ListView)findViewById(R.id.listview);
lv.setAdapter(adap);
}
}
Tetapi sebelumnya kita harus melakukan sedikit perubahan pada xml "main" yaitu dengan menambahkan widget ListView.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<ListView
android:id="@+id/listview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:cacheColorHint="#000000"
/>
</LinearLayout>
Setelah selesai semua kita running deh maka hasilnya akan seperti iniii :
Sederhana bgt kan hasilnya

, ini hanyalah dasarnya saja, nanti bisa kalian kembangkan dan ane yakin pasti ide-ide kalian dan adapternya nanti pada bagus
Nah segini dulu yah dari ane kalo ada salah mohon dimaapin yeehh namanya juga masih belajar

sampai jumpa di lain waktu