1

我正在尝试使用 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();
            }});
4

1 回答 1

0

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

于 2012-12-18T17:23:57.383 回答