我正在尝试修改现有应用程序以在 View 类中包含警报对话框。如果我在活动(另一个应用程序)中运行它,警报对话框工作正常。但是,当我将它添加到现有应用程序中的 View 类时,它会失败并显示(无法添加窗口 -- 令牌为空)错误。我尝试了“this”(当前视图)、getContext() 和 getApplicationContext()。我读到并非所有视图都附加到活动,因此 getContext 失败。有什么替代方法吗?我可以使用某种不依赖于活动的通用警报对话框吗?
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();
相关分类