Tutorial Pemrograman dan Source Code, Android, Web, Mobile, Desktop, Database dan Software. Tutorial Pemrograman Android, Web, PHP, Javascript, VB.NET, C#, ASP.NET dan Java
Rabu, 05 Desember 2012
Aplikasi Android Menggunakan ListView dengan CheckList Checkbox Multiple Selection
Kali ini kita pelajari cara membuat List dengan ListView tetapi menggunakan CheckBox, artinya CheckList pada ListView tersebut dapat dipilih lebih dari satu, serta dapat mempunyai tercentang pada beberapa pilihan saat ditampilkan.
Program utama kita letakkan di MainActivity
MainActivity.java
package com.androidlistviewchecklist;
import android.os.Bundle;
import android.app.Activity;
import android.util.SparseBooleanArray;
import android.view.Menu;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.Toast;
// http://cariprogram.blogspot.com
// nuramijaya@gmail.com
public class MainActivity extends Activity {
String[] pilihan = {"Merapi", "Merbabu", "Slamet", "Ungaran", "Lawu", "Sindoro", "Sumbing"};
ListView list1;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
list1 = (ListView) this.findViewById(R.id.listView1);
list1.setAdapter(new ArrayAdapter(this, android.R.layout.simple_list_item_multiple_choice, pilihan));
list1.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
list1.setItemChecked(0, true);
list1.setSelected(true);
list1.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
String selection = pilihan[arg2];
//Toast.makeText(getApplicationContext(), selection, Toast.LENGTH_LONG).show();
}});
Button button1 = (Button) this.findViewById(R.id.button1);
button1.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
int i=0;
SparseBooleanArray a = list1.getCheckedItemPositions();
for (i=0;i<a.size();i++)
{
Toast.makeText(getApplicationContext(), String.valueOf(a.get(i)), Toast.LENGTH_LONG).show();
}
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}
Sebagai catatan tampilan ini dibuat menggunakan Eclipse dan ADT yang lebih baru dari biasanya jadi sedikit berbeda menggunakan RelativeLayout. Kita pakai saja tampilan default ditambah satu buah ListView dan satu buah Button : :
activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:text="@string/hello_world"
tools:context=".MainActivity" />
<ListView
android:id="@+id/listView1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true" >
</ListView>
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:text="Button" />
</RelativeLayout>
Android Manifest tidak perlu kita ubah, sesuai dengan Activity yang telah dibuat dalam hal ini MainActivity.
AndroidManifest.xml
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.androidlistviewchecklist"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="15" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="@string/title_activity_main" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Project selengkapnya silakan didownload disini :
https://docs.google.com/open?id=0B4i1FYc_4RXzdjBRZzIwX21JZVk
Semoga berhasil, Selamat Coding.