Membuat Tabel Dinamis di Android

Membuat komponen widget button, edittext, textview, dan lain sebagainya di android, tidak hanya dapat dibuat mengunakan tag XML, melainkan dapat dibuat dengan script java.

Implementasinya adalah dalam pembuatan komponen yang sifatnya dinamis. Saya mencoba untuk membahas pembuatan baris table secara dinamis, karena penggunaan table yang sifatnya dinamis sering diterapkan di banyak kasus aplikasi android.

Komponen penyusun table di android meliputi TableLayout & TableRow.

Langkah awal adalah menyiapkan script XML.
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical">
    <ScrollView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content">
        <TableLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:id="@+id/tbl_layout">
        </TableLayout>
    </ScrollView>
    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:padding="5dp">
        <Button
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:id="@+id/btn_tambah"
            android:text="Tambah Baris"
            android:layout_weight="1"/>
        <Button
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:id="@+id/btn_hapus"
            android:text="Hapus Baris"
            android:layout_weight="1"/>
    </LinearLayout>
</RelativeLayout>

*Penggunaan ScrollView hanya dapat untuk 1 komponen saja. Tapi jika lebih dari 1 komponen, Anda bisa menambahkan semua komponen dalam 1 LinearLayout atau komponen Layout lainnya, barulah tambahkan komponen layout tersebut ke dalam ScrollView.

Script java
package com.gungeka.table;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TableLayout;
import android.widget.TableRow;
import android.widget.TextView;
import android.app.Activity;
public class MainActivity extends Activity implements OnClickListener{
private TableLayout tbl_layout;
private Button btn_tambah, btn_hapus;
private int bantu_no = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tbl_layout = (TableLayout) findViewById(R.id.tbl_layout);
btn_tambah = (Button) findViewById(R.id.btn_tambah);
btn_hapus = (Button) findViewById(R.id.btn_hapus);
btn_tambah.setOnClickListener(this);
btn_hapus.setOnClickListener(this);
}
private void tambahBaris(){
TextView txt = new TextView(this);
txt.setText("Baris-"+bantu_no);
txt.setTextSize(15);
TableRow baris = new TableRow(this);
baris.setId(bantu_no);
baris.addView(txt);
tbl_layout.addView(baris);
}
private void hapusBaris(int no){
TableRow baris = new TableRow(this);
baris = (TableRow) findViewById(no);
tbl_layout.removeView(baris);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btn_tambah:
bantu_no++;
tambahBaris();
break;
case R.id.btn_hapus:
hapusBaris(bantu_no);
bantu_no--;
break;
default:
break;
}
}
}
Jalankan aplikasi
Dinamic Table in Android

Download project

1 komentar:


EmoticonEmoticon