【问题标题】:Android Builder dialog button onClickListenerAndroid Builder 对话框按钮 onClickListener
【发布时间】:2015-09-18 06:23:58
【问题描述】:

大家早上好,

我正在开发一个 Android 应用程序,我想使用一个对话框来确认应用程序的退出。我使用以下代码创建构建器:

dialog.setMessage("Are you sure you wish to cancel?")
    .setTitle("Confirm Cancel")
    .setNegativeButton("No", this)
    .setPositiveButton("Yes", this)
    .show();

我知道可以按如下方式处理onClickListener

dialog.setPositiveButton("No", new DialogInterface.OnClickListener() {
    @Override
    public void onClick(DialogInterface dialog, int which)                 
    {
        // TODO Auto-generated method stub
    } });

我更喜欢实现DialogInterface.OnClickListener,它创建了一个onClick(DialogInterface dialog, int which) 方法,我可以在其中处理代码,因为在我看来它使代码更具可读性。

如何处理点击了哪个按钮?我习惯使用View.OnClickListener,您可以在其中使用ifswitch,其中view == "button clicked"。请任何人都可以为我澄清这一点。任何帮助将不胜感激。

【问题讨论】:

  • 你为什么要明确地这样做?
  • 可读性,这是唯一的原因。

标签: android button dialog onclicklistener


【解决方案1】:

使用 BUTTON_POSITIVE 和 BUTTON_NEGATIVE 来检查按下的是哪个。

这里是 onClick 签名:onClick(DialogInterface dialog, int which)。所以可以使用下面的代码来检查:

if (which == DialogInterface.BUTTON_POSITIVE) {
    //...
}

【讨论】:

  • 感谢两位的快速回复。这对我有用
【解决方案2】:

public void onClick(DialogInterface dialog, int which) 中,您将获得 int 值作为 which。因此,您可以使用 if-elseswitch-case 对照 DialogInterface.BUTTON_NEGATIVEDialogInterface.BUTTON_POSITIVE 值检查此值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-14
    • 2012-07-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多