我正在尝试使用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();
}});
答案 0 :(得分:0)
当我开始使用alertdialogs时,我遇到了同样的问题。尝试制作一个全局变量public AlertDialog myAlert;然后在显示对话框时使用此变量。或者只需使用代码:new AlertDialog.Builder.set .... set。(...)。show(); ...