猿问

非活动视图中的警报对话框

我正在尝试修改现有应用程序以在 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();


慕姐4208626
浏览 108回答 1
1回答
随时随地看视频慕课网APP

相关分类

Java
我要回答