1 package jp.sourceforge.gokigen.memoma;
3 import android.app.AlertDialog;
4 import android.app.Dialog;
5 import android.content.Context;
6 import android.content.DialogInterface;
15 public class ItemSelectionDialog
17 private Context context = null;
18 private ISelectionItemReceiver resultReceiver = null;
19 private ISelectionItemHolder dataHolder = null;
20 private String title = "";
22 public ItemSelectionDialog(Context arg)
30 * @param initialMessage
32 public void prepare(ISelectionItemReceiver receiver, ISelectionItemHolder holder, String titleMessage)
35 resultReceiver = receiver;
43 public Dialog getDialog()
45 AlertDialog.Builder builder = new AlertDialog.Builder(context);
47 // 表示するデータ(ダイアログタイトル、メッセージ)を準備する
50 builder.setTitle(title);
52 builder.setCancelable(false);
53 if (dataHolder != null)
55 if (dataHolder.isMultipleSelection() == false)
57 builder.setItems(dataHolder.getItems(), new DialogInterface.OnClickListener()
59 public void onClick(DialogInterface dialog, int id)
62 if (resultReceiver != null)
64 resultReceiver.itemSelected(id, dataHolder.getItem(id));
82 builder.setMultiChoiceItems(dataHolder.getItems(), dataHolder.getSelectionStatus(), new DialogInterface.OnMultiChoiceClickListener()
84 public void onClick(DialogInterface dialog, int which, boolean isChecked)
86 if (resultReceiver != null)
88 resultReceiver.itemSelected(which, dataHolder.getItem(which));
93 /** 複数選択時には、OKボタンを押したときに選択を確定させる。 **/
94 builder.setPositiveButton(context.getString(R.string.confirmYes), new DialogInterface.OnClickListener()
96 public void onClick(DialogInterface dialog, int id)
99 if (resultReceiver != null)
101 resultReceiver.itemSelectedMulti(dataHolder.getItems(), dataHolder.getSelectionStatus());
117 // builder.setMultiChoiceItems(CharSequence[] items, boolean[] checkedItems, OnMultiChoiceClickListener listener)
120 builder.setNegativeButton(context.getString(R.string.confirmNo), new DialogInterface.OnClickListener()
122 public void onClick(DialogInterface dialog, int id)
125 if (resultReceiver != null)
127 resultReceiver.canceledSelection();
140 return (builder.create());
143 public interface ISelectionItemHolder
145 public abstract boolean isMultipleSelection();
147 public abstract String[] getItems();
148 public abstract String getItem(int index);
151 public abstract boolean[] getSelectionStatus();
152 public abstract void setSelectionStatus(int index, boolean isSelected);
155 public interface ISelectionItemReceiver
157 public abstract void itemSelected(int index, String itemValue);
158 public abstract void itemSelectedMulti(String[] items, boolean[] status);
159 public abstract void canceledSelection();