我正在点击活动中的按钮创建自定义对话框。对话框中有按钮,我设置如下:
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。
我不希望在我的活动中有一个对话框字段,除非这是唯一的方法。
任何帮助将不胜感激。提前谢谢。
答案 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;
}
}