在我对数据库做一些不可逆的事情之前,我试图要求用户确认两次。问题是外部点击处理程序不等待内部点击处理程序。在第一个对话框上单击"is"按钮后,会短暂显示第二个对话框,但外部处理程序仍然会执行并完成,最终会销毁两个对话框。
new AlertDialog.Builder(ActivityMain.this).setMessage(
"Are you sure?").setPositiveButton("Yes",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface arg0, int arg1) {
new AlertDialog.Builder(ActivityMain.this).setMessage(
"Are you really sure?").setPositiveButton("Yes",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface arg0, int arg1) {
....
这是为什么?
最佳答案
只需设计一个新的 xml 布局作为您的对话框并创建一个新 Activity 并将其主题设置为 @android:style/Theme.Dialog 在 Activity 标签下的 list 文件中:
<activity android:theme="@android:style/Theme.Dialog" android:name="LocationDialog"> </activity>
在对话框中点击监听器代码启动 Activity 为
new AlertDialog.Builder(ActivityMain.this).setMessage(
"Are you sure?").setPositiveButton("Yes",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface arg0, int arg1) {
Intent i = new Intent(YourActivity.this, NewActivity.class);
startActivity(i);
}
这将以对话框的形式启动您的新 Activity ,您可以在其中轻松应用您的操作。
关于Android 嵌套的 AlertDialog - 这可能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4415478/