我的警报对话框有问题,我有 2 个警报对话框,应该在用户单击另一个后显示一个,问题是当我尝试显示第二个时(即使我使用处理程序来显示它在第一个之后 12 秒仍然无法工作)它崩溃,如果他们单独但不在一起,两者都可以工作。
当它崩溃时,它会启动类文件编辑器,当我继续仿真然后因错误而崩溃时,我认为这是因为第一个对话框仍然存在(即使用户单击一个选项)但我没有查看任何关闭对话框或类似功能的功能。
这是代码:
final Builder dialogo = new AlertDialog.Builder(this)
.setTitle("Introduce un nombre")
.setMessage("Esta es la primera vez que subes una foto, introduce un nombre que aparecera en tu foto")
.setView(input)
.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
String nombre = String.valueOf(input.getText());
if(nombre.equalsIgnoreCase(""))
{
Toast.makeText(ctx,"¡Tu nombre no puede estar en blanco!", Toast.LENGTH_LONG).show();
//entra =1;
}
else
{
editor.putString("nombre",nombre);
editor.commit();
//entra = 0;
}
}
}).setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
//entra =1;
}
});
dialogo.create();
Builder dialogo3 = new AlertDialog.Builder(this)
.setTitle("Introduce un nombre mamahuevo")
.setMessage("Esta es la primera vez que subes una foto, introduce un nombre que aparecera en tu foto")
.setView(input)
.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
String nombre = String.valueOf(input.getText());
if(nombre.equalsIgnoreCase(""))
{
Toast.makeText(ctx,"¡Tu nombre no puede estar en blanco!", Toast.LENGTH_LONG).show();
//entra =1;
}
else
{
editor.putString("nombre",nombre);
editor.commit();
dialogo.show();
//entra = 0;
}
}
}).setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
//entra =1;
}
});
dialogo3.create();
dialogo3.show();
这是错误:
06-06 15:43:15.765: E/AndroidRuntime(3008): FATAL EXCEPTION: main
06-06 15:43:15.765: E/AndroidRuntime(3008): java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.
06-06 15:43:15.765: E/AndroidRuntime(3008): at android.view.ViewGroup.addViewInner(ViewGroup.java:3430)
06-06 15:43:15.765: E/AndroidRuntime(3008): at android.view.ViewGroup.addView(ViewGroup.java:3301)
06-06 15:43:15.765: E/AndroidRuntime(3008): at android.view.ViewGroup.addView(ViewGroup.java:3277)
06-06 15:43:15.765: E/AndroidRuntime(3008): at com.android.internal.app.AlertController.setupView(AlertController.java:416)
06-06 15:43:15.765: E/AndroidRuntime(3008): at com.android.internal.app.AlertController.installContent(AlertController.java:244)
06-06 15:43:15.765: E/AndroidRuntime(3008): at android.app.AlertDialog.onCreate(AlertDialog.java:337)
06-06 15:43:15.765: E/AndroidRuntime(3008): at android.app.Dialog.dispatchOnCreate(Dialog.java:355)
06-06 15:43:15.765: E/AndroidRuntime(3008): at android.app.Dialog.show(Dialog.java:260)
06-06 15:43:15.765: E/AndroidRuntime(3008): at android.app.AlertDialog$Builder.show(AlertDialog.java:951)
06-06 15:43:15.765: E/AndroidRuntime(3008): at sxa.sexolia.sexyono.Opciones$6.onClick(Opciones.java:183)
06-06 15:43:15.765: E/AndroidRuntime(3008): at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:169)
06-06 15:43:15.765: E/AndroidRuntime(3008): at android.os.Handler.dispatchMessage(Handler.java:99)
06-06 15:43:15.765: E/AndroidRuntime(3008): at android.os.Looper.loop(Looper.java:153)
06-06 15:43:15.765: E/AndroidRuntime(3008): at android.app.ActivityThread.main(ActivityThread.java:5297)
06-06 15:43:15.765: E/AndroidRuntime(3008): at java.lang.reflect.Method.invokeNative(Native Method)
06-06 15:43:15.765: E/AndroidRuntime(3008): at java.lang.reflect.Method.invoke(Method.java:511)
06-06 15:43:15.765: E/AndroidRuntime(3008): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833)
06-06 15:43:15.765: E/AndroidRuntime(3008): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
06-06 15:43:15.765: E/AndroidRuntime(3008): at dalvik.system.NativeStart.main(Native Method)