在如何将选项列表添加到官方 Android 文档的描述中,暗示使用“数据存储技术AlertDialog
”之一来保存用户首选项。这些示例假设已在一个 类中产生。AlertDialog
Activity
就我而言,我创建了一个扩展类ItemizedOverlay
。此类重写该onTap
方法并使用AlertDialog
来提示用户进行多选选择。我想捕获并保留OverlayItem
他们点击的每个选择。
下面的代码是我写的 onTap 方法。它按书面方式运行,但还没有达到我希望的效果。我想捕获并保留用户所做的每个选择以供以后使用。我怎么做?以这种方式使用AlertDialog
一个好主意吗?有更好的选择吗?
protected boolean onTap(int index)
{
OverlayItem item = _overlays.get(index);
final CharSequence[] items = { "WiFi", "BlueTooth" };
final boolean[] checked = { false, false };
AlertDialog.Builder builder = new AlertDialog.Builder(_context);
builder.setTitle(item.getTitle());
builder.setMultiChoiceItems(items, checked, new
DialogInterface.OnMultiChoiceClickListener()
{
@Override
public void onClick(DialogInterface dialog, int item,
boolean isChecked)
{
// for now just show that the user touched an option
Toast.makeText(_context, items[item],
Toast.LENGTH_SHORT).show();
}
});
builder.setPositiveButton("Okay", new DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface dialog, int id)
{
// should I be examining what was checked here?
dialog.dismiss();
}
});
builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface dialog, int id)
{
dialog.cancel();
}
});
AlertDialog alert = builder.create();
alert.show();
return true;
}