首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Android上显示Yes/No对话框?

如何在Android上显示Yes/No对话框?
EN

Stack Overflow用户
提问于 2010-03-19 23:32:36
回答 17查看 329.9K关注 0票数 379

是的,我知道有AlertDialog.Builder,但是我震惊地发现在Android中显示一个对话框是多么的困难(至少不是程序员友好的)。

我曾经是一名.NET开发人员,我想知道有没有与下面的安卓相当的东西?

代码语言:javascript
复制
if (MessageBox.Show("Sure?", "", MessageBoxButtons.YesNo) == DialogResult.Yes){
    // Do something...
}
EN

回答 17

Stack Overflow用户

回答已采纳

发布于 2010-03-19 23:50:24

AlertDialog.Builder使用起来并不是很难。它一开始肯定有点吓人,但是一旦你用过它,它就会变得简单而强大。我知道你说过你知道如何使用它,但不管怎样,这里只有一个简单的例子:

代码语言:javascript
复制
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()

票数 772
EN

Stack Overflow用户

发布于 2012-08-31 18:29:57

试试这个:

代码语言:javascript
复制
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();
票数 172
EN

Stack Overflow用户

发布于 2010-03-20 01:16:22

Steve H的回答是正确的,但这里有更多的信息:对话框的工作方式是因为Android中的对话框是异步的(当对话框显示时,执行不会停止)。因此,您必须使用回调来处理用户的选择。

查看这个问题,了解Android和.NET之间的差异(因为它与对话框有关):Dialogs / AlertDialogs: How to "block execution" while dialog is up (.NET-style)

票数 34
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2478517

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档