我知道,已经提出了类似的问题,我已经查看了我能找到的所有内容,但我没有找到任何答案。
以下是代码:
protected Dialog onCreateDialog(int id)
{
Dialog dialog = new Dialog(this);
switch(id)
{
case R.layout.database_feed:
dialog.setContentView(R.layout.database_feed);
((Button) dialog.findViewById(R.id.discard_button)).setOnClickListener(
new View.OnClickListener()
{
//@Override
public void onClick(View v)
{
//dialog.cancel();
}
}
);
break;
}
return dialog;
}
我只想点击R.layout.database_feed按钮关闭对话框。但我没有访问onClick方法中的对话框。我真的很困惑。
我不想使用AlertDialog或DialogBuilder,因为Dialog中的其他内容很难在AlertDialog中实现。 此外,我已经知道为对话框单独创建活动的解决方案 - 但实际上我想知道它是如何工作的,我正在尝试这里。 此外,我已经尝试使用DialogInterface.OnClickListener()但我不能在setOnClickListener(...) - 方法中使用它。
只是取消对话就不会那么难......但我不明白。
感谢任何提示/帮助!
THX
答案 0 :(得分:4)
更改
Dialog dialog = new Dialog(this);
到
final Dialog dialog = new Dialog(this);
然后您可以在onClick()方法中访问对话框。
答案 1 :(得分:2)
将“对话框”存储为类变量,或者在方法中将其设置为最终。