【发布时间】:2018-09-09 22:56:05
【问题描述】:
我正在尝试修改现有应用程序以在 View 类中包含警报对话框。如果我在活动(另一个应用程序)中运行警报对话框,它可以正常工作。但是,当我将它添加到现有应用程序中的 View 类时,它会失败并出现(无法添加窗口 -- token null)错误。我尝试了“this”(当前视图)、getContext() 和 getApplicationContext()。我读到并非所有视图都附加到活动,因此 getContext 失败。有没有其他选择?我可以使用某种不依赖 Activity 的通用警报对话框吗?
Dialog dialog;
final ArrayList<Integer> itemsSelected = new ArrayList<Integer>();
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setTitle("Selection:");
builder.setMultiChoiceItems(items.toArray(new String[items.size()]), null,
new DialogInterface.OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface dialog, int selectedItemId,
boolean isSelected) {
if (isSelected) {
itemsSelected.add(selectedItemId);
} else if (itemsSelected.contains(selectedItemId)) {
itemsSelected.remove(Integer.valueOf(selectedItemId));
}
}
})
.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
// OK
}
})
.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
// Cancel
}
});
dialog = builder.create();
dialog.show();
【问题讨论】:
标签: java android view dialog android-alertdialog