我有2个警告对话框,对话框A和对话框B.单击对话框A的按钮之一将显示对话框B.然后我想要一个按钮,它将关闭对话框B并返回到对话框A. 除了执行showDialog(dialogA)的对话框B之外,有没有办法做到这一点?
这样可以,但你可以看到对话框A的重新加载,而不是只返回已经存在的对话框A.在对话框B中执行关闭只是解除它们两个。
一个小问题,但我想看看是否有办法将它们堆叠在一起。
由于
答案 0 :(得分:4)
使用基本对话框构建块无法将它们堆叠起来,您需要重新显示第一个对话框。 这样做的原因是,当您按下对话框按钮时,它会在内部关闭对话框,作为调用为对话框构建器API中的每个按钮分配的单击处理程序的过程的一部分。
解决此问题的一种方法是通过在布局中设置自己的按钮,而不是使用对话框构建器方法创建的按钮,来创建没有关闭行为的自定义对话框布局。然后在您自己的按钮的单击处理程序中,只显示第二个对话框而不解除第一个对话框。 http://developer.android.com/guide/topics/ui/dialogs.html#CustomDialog
答案 1 :(得分:2)
正如一个回复所提到的,你不能用标准对话框来做这件事。但是可以通过将第一个对话框设置为一个看起来像对话框的活动来实现它,而第二个对话框实际上是一个对话框。 只需在布局中设置活动的主题,如下所示:
<activity android:theme="@android:style/Theme.Dialog">
有关制作看似对话的活动,请参阅此主题。 https://stackoverflow.com/a/1979631/602661
答案 2 :(得分:1)
从内部取消对话框。
编辑,这是一些更清晰的代码。
alertDialog.setButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
return;
}
});
alertDialog.show();
答案 3 :(得分:1)
您应在布局中使用一个视图/按钮,并根据此视图/按钮单击,您可以创建另一个dailog而不取消第一个,如果您使用< strong> builder.setNegativeButton 或 builder.setPositiveButton 您当前的对话框将关闭,我的工作代码如as,
AlertDialog.Builder builder = new AlertDialog.Builder(ActivityAppImages.this,R.style.your_style);
LayoutInflater inflater = getLayoutInflater();
View dialoglayout = inflater.inflate(R.layout.your_custom_layout, null);
final Button mButtonCreateOtherDailog = (Button)dialoglayout.findViewById(R.id.txt_create_second_dailog);
mTextView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//create your other dailog here
}
});
builder.setView(dialoglayout);
builder.show();