是的,我知道有AlertDialog.Builder,但是我震惊地发现在Android中显示一个对话框是多么的困难(至少不是程序员友好的)。
我曾经是一名.NET开发人员,我想知道有没有与下面的安卓相当的东西?
if (MessageBox.Show("Sure?", "", MessageBoxButtons.YesNo) == DialogResult.Yes){
// Do something...
}发布于 2010-03-19 23:50:24
AlertDialog.Builder使用起来并不是很难。它一开始肯定有点吓人,但是一旦你用过它,它就会变得简单而强大。我知道你说过你知道如何使用它,但不管怎样,这里只有一个简单的例子:
DialogInterface.OnClickListener dialogClickListener = new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
switch (which){
case DialogInterface.BUTTON_POSITIVE:
//Yes button clicked
break;
case DialogInterface.BUTTON_NEGATIVE:
//No button clicked
break;
}
}
};
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setMessage("Are you sure?").setPositiveButton("Yes", dialogClickListener)
.setNegativeButton("No", dialogClickListener).show();如果您有其他应该执行相同操作的yes/no框,您也可以重用该DialogInterface.OnClickListener。
如果您是从View.OnClickListener中创建对话框,则可以使用view.getContext()来获取上下文。或者,您可以使用yourFragmentName.getActivity()。
发布于 2012-08-31 18:29:57
试试这个:
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Confirm");
builder.setMessage("Are you sure?");
builder.setPositiveButton("YES", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// Do nothing but close the dialog
dialog.dismiss();
}
});
builder.setNegativeButton("NO", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// Do nothing
dialog.dismiss();
}
});
AlertDialog alert = builder.create();
alert.show();发布于 2010-03-20 01:16:22
Steve H的回答是正确的,但这里有更多的信息:对话框的工作方式是因为Android中的对话框是异步的(当对话框显示时,执行不会停止)。因此,您必须使用回调来处理用户的选择。
查看这个问题,了解Android和.NET之间的差异(因为它与对话框有关):Dialogs / AlertDialogs: How to "block execution" while dialog is up (.NET-style)
https://stackoverflow.com/questions/2478517
复制相似问题