Android 中未出现警告对话框
Alert dialog doesn't appear in Android
正在尝试为待办事项应用设置完成列表。我试图在单击按钮时显示一个对话框,但在该对话框不出现之后。
showdone.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
AlertDialog.Builder builder = new AlertDialog.Builder(todo.this);
builder.setAdapter(itemdone, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
String strDone = itemdone.getItem(which);
AlertDialog.Builder builderInner = new AlertDialog.Builder(todo.this);
builderInner.setTitle("Done List");
builderInner.setMessage(strDone);
builderInner.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
builderInner.create().show();
}
});
builder.show();
}
});
您想在对话框而不是构建器上调用显示。还从 builder
重命名为 showDoneBuilder
以区别于内部构建器。拉出内部构建以提高可读性。
showdone.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
AlertDialog.Builder showDoneBuilder = new AlertDialog.Builder(todo.this);
showDoneBuilder.setAdapter(itemdone, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
String strDone = itemdone.getItem(which);
showDoneListDialog(strDone);
}
});
showDoneBuilder.create().show(); // THE FIX
}
}
private void showDoneListDialog(String message) {
AlertDialog.Builder builderInner = new AlertDialog.Builder(todo.this);
builderInner.setTitle("Done List");
builderInner.setMessage(message);
builderInner.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
builderInner.create().show();
}
正在尝试为待办事项应用设置完成列表。我试图在单击按钮时显示一个对话框,但在该对话框不出现之后。
showdone.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
AlertDialog.Builder builder = new AlertDialog.Builder(todo.this);
builder.setAdapter(itemdone, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
String strDone = itemdone.getItem(which);
AlertDialog.Builder builderInner = new AlertDialog.Builder(todo.this);
builderInner.setTitle("Done List");
builderInner.setMessage(strDone);
builderInner.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
builderInner.create().show();
}
});
builder.show();
}
});
您想在对话框而不是构建器上调用显示。还从 builder
重命名为 showDoneBuilder
以区别于内部构建器。拉出内部构建以提高可读性。
showdone.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
AlertDialog.Builder showDoneBuilder = new AlertDialog.Builder(todo.this);
showDoneBuilder.setAdapter(itemdone, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
String strDone = itemdone.getItem(which);
showDoneListDialog(strDone);
}
});
showDoneBuilder.create().show(); // THE FIX
}
}
private void showDoneListDialog(String message) {
AlertDialog.Builder builderInner = new AlertDialog.Builder(todo.this);
builderInner.setTitle("Done List");
builderInner.setMessage(message);
builderInner.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
builderInner.create().show();
}