AlertDialog第二次施放时崩溃

时间:2012-12-18 11:13:29

标签: android android-alertdialog

我正在尝试使用alertdialog从用户接收数据,第一次使用它时,没有问题,但如果我第二次施放alertdialog应用程序崩溃。

final AlertDialog.Builder alert = new AlertDialog.Builder(this);
        final LinearLayout marco=new LinearLayout(this);
        final EditText input = new EditText(this);
        final EditText input2 = new EditText(this);
        final TextView nom=new TextView(this);
        nom.setText("Nombre:");
        final TextView ap=new TextView(this);
        ap.setText("Apellido:");
        input.setWidth(500);
        input2.setWidth(500);
        ((LinearLayout)marco).addView(nom);
        ((LinearLayout)marco).addView(input);
        ((LinearLayout)marco).addView(ap);
        ((LinearLayout)marco).addView(input2);
        alert.setTitle("Introduce Datos:");
        marco.setOrientation(LinearLayout.VERTICAL);
        alert.setView(marco);
        alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int whichButton) {
                String value = input.getText().toString().trim();
                String value2 = input2.getText().toString().trim();
                Toast.makeText(getApplicationContext(), value, Toast.LENGTH_SHORT).show();
                String nombre=value,apellido=value2;
            db.execSQL("INSERT INTO Usuarios (codigo, nombre, apellido) " +
                        "VALUES (" + codigo + ", '" + nombre +"','"+apellido+"')");
                codigo++;
                RellenarSpinner(db);

            }
        });
        alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int whichButton) {
                dialog.cancel();
                ((AlertDialog.Builder) alert).setView(marco);
            }
        });
final Button alta=(Button)findViewById(R.id.btnAlta);
alta.setOnClickListener(new OnClickListener(){

            public void onClick(View arg0) {
                alert.show();
            }});

1 个答案:

答案 0 :(得分:0)

当我开始使用alertdialogs时,我遇到了同样的问题。尝试制作一个全局变量public AlertDialog myAlert;然后在显示对话框时使用此变量。或者只需使用代码:new AlertDialog.Builder.set .... set。(...)。show(); ...