Wednesday, October 5, 2011

Menambahkan Tombol di akhir ListView [Android Programming]

Ada beberapa macam cara untuk melakukan load more data pada pemrograman Android. Hal ini biasanya digunakan untuk melakukan query ke basis data secara berkala sehingga data yang dapat ditampilkan seperti tidak ada batasnya (endless list).

Hal ini bisa dilakukan dengan berbagai macam cara, yang pertama adalah dengan menggunakan tombol dan yang kedua tidak menggunakan tombol (onScrollListener).

Untuk yang tidak menggunakan tombol, data diambil ketika pengguna menarik halaman (seperti yang ada pada aplikasi Twitter for Android jika akan melakukan refresh). Tetapi, pada kasus ini query data dilakukan ketika pengguna telah sampai pada akhir bawah dari daftar (end of list). Cara untuk melakukan hal ini dapat dilakukan menggunakan ENDLESS ADAPTER.

Untuk yang menggunakan tombol lebih mudah dilakukan karena hanya menambahkan sebuah tombol di akhir dari list dengan menggunakan perintah addFooterView(View v) dengan v adalah View dari button yang dibuat pada XML terpisah.

Untuk lebih mudahnya dapat dilihat pada kode berikut:

Main.java

public class Pengembangan extends Activity

{
private ListView thislist;
private Vector data = new Vector();
private ArrayAdapter
adapt;

@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

View v = getLayoutInflater().inflate(R.layout.button, null);

thislist = (ListView)findViewById(R.id.myList);
for(int i = 0; i < 5; i++){ data.add("List "+i); } adapt = new ArrayAdapter
(this,android.R.layout.simple_list_item_1,data);
thislist.addFooterView(v);
thislist.setAdapter(adapt);

}

public void doAppend(View v){

for (int i = thislist.getCount(); i < (thislist.getCount()+5); i++)
{ data.add("List "+i); }

adapt = new ArrayAdapter
(this,android.R.layout.simple_list_item_1,data);
thislist.setAdapter(adapt);

// biar layar menampilkan objek yang terakhir
thislist.setSelection(thislist.getCount() - 1);

}

}



main.xml

<relativelayout android:id="@+id/LinearLayout01" android:layout_height="fill_parent" android:layout_width="fill_parent" android:orientation="vertical" xmlns:android="http://schemas.android.com/apk/res/android">

<listview android:id="@+id/myList" android:layout_height="wrap_content" android:layout_width="wrap_content">

</listview>
</relativelayout>


button.xml

<button android:id="@+id/button01" android:layout_height="wrap_content" android:layout_width="wrap_content" android:onclick="doAppend" android:text="More" xmlns:android="http://schemas.android.com/apk/res/android">
</button>

Dengan kode tersebut maka akan mendapati list dengan tombol "More" yang selalu berada di ujung paling bawah. Dan ketika tombol tersebut ditekan maka akan menampilkan tambahan list 5 bilangan yang mengisi list diatas tombol More".

No comments:

Post a Comment