我正在尝试显示一个对话框,允许用户使用此代码段选择一个值:
AlertDialog.Builder builder = new AlertDialog.Builder(this.objActivity);
builder.setTitle("Alert Dialog with ListView");
builder.setIcon(R.drawable.ic_launcher);
builder.setSingleChoiceItems(lstNames.toArray(new CharSequence[lstNames.size()]), 1, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int intItem) {
PreferenceCategory targetCategory = (PreferenceCategory) StopFinder.this.objActivity.findPreference("monitored_stops");
final Preference account = new Preference(StopFinder.this.objActivity);
account.setKey(lstIds.get(intItem));
account.setTitle(lstStops.get(intItem));
account.setSummary(lstNumbers.get(intItem));
targetCategory.addPreference(account);
dialog.dismiss();
}
});
final AlertDialog alert = builder.create();
alert.show();
当用户选择一个项目时,我想解除对话但是我无法这样做?
我已经读过我需要关闭alert
,但alert
方法之后onClick
被初始化,所以我不知道如何解雇这个问题。对不起,我第一百万次和其他人一样问过同样的问题,但是我无法绕过这个场景。感谢
答案 0 :(得分:2)
使用setItems()
代替setSingleChoiceItems()
。
它会在单击项目时关闭对话框,并调用您的回调函数。
答案 1 :(得分:0)
我认为您可以将警报声明为类的私有变量,然后您可以在使用onClick事件中的alert.dismiss()
调用click和dismiss之前为其分配值。
答案 2 :(得分:0)
尝试在onCreate()之前声明警报;像这样
AlertDialog alert;
@Override
protected void onCreate(Bundle savedInstanceState) {
然后使用alert.dismiss();
代替dialog.dismiss();
另外,请替换final AlertDialog alert = builder.create();
alert = builder.create();
答案 3 :(得分:0)
试试这个
builder.create().show();
而不是
final AlertDialog alert = builder.create();
alert.show();