基本的には ListView や SingleChoice と同じ.
Adapter の作成時に Muliple Choice ようのレイアウトを設定するのと
setChoiceMode で ListView.CHOICE_MODE_MULTIPLEを設定するくらい
すると CheckBox 付きのリストが表示されます.
というわけで,MultipleChoiceList をいじってみた.
サンプルコード
public class MultipleChoiceListViewSample extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.listview_sample); ListView listView = (ListView)findViewById(R.id.ListView); // アダプタの作成 listView.setAdapter(new ArrayAdapter<String>( this, android.R.layout.simple_list_item_multiple_choice, DAYS) ); // フォーカスが当たらないよう設定 listView.setItemsCanFocus(false); // 選択の方式の設定 listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); for (int i = 1; i < 6; i++) { // 指定したアイテムがチェックされているかを設定 listView.setItemChecked(i, true); } // アイテムがクリックされたときに呼び出されるコールバックを登録 listView.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { // クリックされた時の処理 } }); // 現在チェックされているアイテムを取得 // チェックされてないアイテムは含まれない模様 SparseBooleanArray checked = listView.getCheckedItemPositions(); for (int i = 0; i < checked.size(); i++) { // チェックされているアイテムの key の取得 int key = checked.keyAt(i); Log.v(getClass().getSimpleName(), "values: " + DAYS[key]); } } // ListView に表示させる文字列 private static final String[] DAYS = new String[] { "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" }; }XMLリソース
<?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"> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="ListSample" /> <ListView android:layout_width="fill_parent" android:layout_height="0dip" android:layout_weight="1" android:id="@+id/ListView"> </ListView> </LinearLayout>
実行すると...
こんな感じ!
参考サイト
http://developer.android.com/intl/ja/reference/android/widget/ListView.html
0 件のコメント:
コメントを投稿