在onClick中获取Dialog的参考

时间:2017-07-05 07:13:16

标签: android customdialog

我正在点击活动中的按钮创建自定义对话框。对话框中有按钮,我设置如下:

 Button buttonTakePicture = (Button)dialog.findViewById(R.id.buttonTakePicture);
 buttonTakePicture.setOnClickListener(this);

我的活动正在实施onClickListener,被覆盖的onClick方法如下所示:

@Override
    public void onClick(View view) {
        switch (view.getId()) {
            case R.id.buttonTakePicture:
                Dialog dialog = //Get the dialog somehow from view;
                if (dialog != null) {
                    dialog.dismiss();
                }
                takePicture();
                break;
        }
    }

我很难在这里获得Dialog Reference。我尝试过(Dialog)view.getParent()以及(Dialog)view.getParent.getParent(),但它们不是Dialogs。

  

我不希望在我的活动中有一个对话框字段,除非这是唯一的方法。

任何帮助将不胜感激。提前谢谢。

1 个答案:

答案 0 :(得分:1)

我有解决方案,

Button buttonTakePicture = (Button)dialog.findViewById(R.id.buttonTakePicture);
        buttonTakePicture.setTag(dialog);
        buttonTakePicture.setOnClickListener(this);

并获得像这样的对话,

@Override
    public void onClick(View view) {
        switch (view.getId()) {
            case R.id.buttonTakePicture:
                Dialog dialog = (Dialog) view.getTag();
                if (dialog != null) {
                    view.setTag(null);
                    dialog.dismiss();
                }
                takePicture();
                break;
        }
    }