В описании how to add a list опций AlertDialog
официальная документация на Android ссылается на сохранение предпочтений пользователей с одним из «data storage techniques». Примеры предполагают, что AlertDialog
был порожден в классе Activity
.Как сохранить параметры, выбранные в AlertDialog, порожденные методом ItemizedOverlay onTap
В моем случае я создал класс, который расширяет ItemizedOverlay
. Этот класс переопределяет метод onTap
и использует команду AlertDialog
, чтобы побудить пользователя сделать multi-choice selection. Я хотел бы захватить и сохранить выбор для каждого 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;
}
Извините, но я не понимаю точно, чего вы пытаетесь достичь. В чем ваш вопрос? – JRL
@JRL Я переработал вопрос, надеюсь, мои намерения более ясны. Извините за огромный код-блок, очень новый для разработки Android, и я не уверен, что уместно на данный момент. : \ – ahsteele
Пока неясно, каков ваш вопрос. В вашей прозе нет никаких вопросительных знаков. Не компилируется ли код? Является ли код неудачным с исключением (и если да, то какова трассировка стека)?Что-то еще не так? – CommonsWare