Tuesday 28 July 2015

Android Checkbox

fanxtea.blogspot.com

Android Checkbox

By Fanxtea | 1 Januari 2015



Dalam Android, kita boleh gunakan kelas "android.widget.Checkbox" untuk membuat checkbox.

Dalam tutorial ini, saya akan menunjukkan bagaimana untuk mewujudkan tiga checkbox dalam fail XML dan menunjukkan penggunaan listener untuk memeriksa keadaan checkbox, samada ditanda ataupun tidak.

  1. Custom String
  2. Buka fail "res/values/layout/string.xml" dan tambah seperti dibawah.

    Fail : res/values/layout/string.xml

    <?xml version="1.0" encoding="utf-8"?> <resources> <string name="hello">Hello World!</string> <string name="app_name">Hello World</string> <string name="chk_ios">IPhone</string> <string name="chk_android">Android</string> <string name="chk_windows">Windows Mobile</string> <string name="btn_display">Display</string> </resources>

  3. CheckBox
  4. Buka fail "res/layout/activity_main.xml" dan tambah tiga checkbox dan satu butang biasa.

    Fail: res/layout/activity_main.xml

    <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <CheckBox android:id="@+id/chkIos" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/chk_ios" /> <CheckBox android:id="@+id/chkAndroid" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/chk_android" android:checked="true" /> <CheckBox android:id="@+id/chkWindows" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/chk_windows" /> <Button android:id="@+id/btnDisplay" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/btn_display" /> </LinearLayout>

    Nota : Jadikan checkBox ditanda secara default dengan tambah android:checked="true" didalam unsur checkbox. Dalam contoh ini, "Android" telah ditanda sebagai default.

  5. Kod
  6. Hidupkan fungsi listener didalam aktiviti "onCreate()", untuk memantau events yang berikut:
    1. Jika checkbox id: "chkIos" ditanda, mesej popup "Bro, cuba Android akan terpapar".
    2. Jika butang di tekan, mesej popup akan memaparkan senarai checkbox yang ditanda sahaja.

    Fail : MainActivity.java

    package com.fanxtea.helloworld; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.CheckBox; import android.widget.Toast; public class MainActivity extends Activity { private CheckBox chkIos, chkAndroid, chkWindows; private Button btnDisplay; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); addListenerOnChkIos(); addListenerOnButton(); } public void addListenerOnChkIos() { chkIos = (CheckBox) findViewById(R.id.chkIos); chkIos.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { //adakah chkIos ditanda? if (((CheckBox) v).isChecked()) { Toast.makeText(MainActivity.this, "Bro, cuba Android :)", Toast.LENGTH_LONG).show(); } } }); } public void addListenerOnButton() { chkIos = (CheckBox) findViewById(R.id.chkIos); chkAndroid = (CheckBox) findViewById(R.id.chkAndroid); chkWindows = (CheckBox) findViewById(R.id.chkWindows); btnDisplay = (Button) findViewById(R.id.btnDisplay); btnDisplay.setOnClickListener(new OnClickListener() { //Run when button is clicked @Override public void onClick(View v) { StringBuffer result = new StringBuffer(); result.append("IPhone ditanda : ") .append(chkIos.isChecked()); result.append("\nAndroid ditanda : ") .append(chkAndroid.isChecked()); result.append("\nWindows Mobile ditanda :") .append(chkWindows.isChecked()); Toast.makeText(MainActivity.this, result.toString(), Toast.LENGTH_LONG).show(); } }); } }

  7. Demo
  8. Run aplikasi.

    Default checkbox Android ditanda.

    Klik pada checkbox IPhone.

    Klik pada butang "Display" akan memaparkan semua checkbox yang ditanda atau pon tidak