0
我有一些代码使用警报对话框添加东西到数据库。这有效,但只有我第一次使用它。第二次按下按钮打开警报对话框,强制关闭。在android第二次我呼吁警告对话框它强制关闭
final AlertDialog.Builder alert1 = new AlertDialog.Builder(EmergencyDb.this);
final AlertDialog.Builder alert2 = new AlertDialog.Builder(EmergencyDb.this);
alert1.setTitle("New Contact");
alert1.setMessage("Name: ");
alert2.setTitle("New Contact");
alert2.setMessage("Phone Number: ");
final EditText input1 = new EditText(EmergencyDb.this);
final EditText input2 = new EditText(EmergencyDb.this);
final int PHONE_TYPE = 3;
input2.setInputType(PHONE_TYPE);
alert1.setView(input1);
alert2.setView(input2);
alert1.setPositiveButton("Next", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
name = input1.getText().toString();
alert2.show();
}
});
alert2.setPositiveButton("Add", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
phoneNum = input2.getText().toString();
SQLiteDatabase db = openHelper.getReadableDatabase();
openHelper.addContact(name, phoneNum, db);
Cursor cursor = null;
try {
cursor = getContactCursor();
SimpleCursorAdapter adapter = new SimpleCursorAdapter(EmergencyDb.this,
R.layout.row, cursor, COLUMNS, VIEWS);
setListAdapter(adapter);
}
catch (Exception ex){
//... error handling
}
}
});
alert1.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
// Canceled.
}
});
alert2.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
// Canceled.
}
});
final Button addButton = (Button) findViewById(R.id.addButton);
addButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
alert1.show();
}
});
在Eclipse中使用'adb logcat',DDMS或DDMS透视图来检查LogCat并查看与“强制关闭”相关的堆栈跟踪。 – CommonsWare 2011-05-01 17:22:38