29

我在我的 android 项目中使用此代码:

alertDialog.setButton("OK", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int which) {
        }
    });

但是,Eclipse 表示setButton()已弃用。请帮助我提供替代解决方案。谢谢!

4

8 回答 8

67
AlertDialog.Builder builder = new AlertDialog.Builder(activity);
        builder.setTitle("ALERTTILESTRING")
        .setMessage("alertNameString")
        .setCancelable(false)
        .setNegativeButton("Close",new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int id) {
                dialog.cancel();
            }
        });
        AlertDialog alert = builder.create();
        alert.show();
    }

我希望上面的代码是一个很好的代码,其中对话框工作得很好

于 2012-11-07T11:02:31.710 回答
34

setButton() 不是被弃用的,而是函数+参数组合。仍然存在 setButton(),但您需要为按钮提供一个 ID 作为 setButton() 的第一个参数:

alertDialog.setButton(0, "OK", new DialogInterface.OnClickListener() {
    public void onClick(DialogInterface dialog, int which) {
      <do something>;
    }
});

如果您想为所有按钮提供相同的 OnClickListener,这将很有用:

class alertDialogOnClickListener implements DialogInterface.OnClickListener {
    public void onClick(DialogInterface dialog, int which) {
        switch(which){
            case 1:
                <do something>;
                break;
            case 2:
                <do something>;
                break;
        }
    }
}
alertDialog.setButton(1, "OK", new alertDialogOnClickListener());
alertDialog.setButton(2, "Cancel", new alertDialogOnClickListener());
于 2013-06-14T04:22:19.707 回答
13

采用:setButton(int whichButton, CharSequence text, DialogInterface.OnClickListener listener);

用于whichButton以下其中一项:

DialogInterface.BUTTON_POSITIVE 
DialogInterface.BUTTON_NEGATIVE
DialogInterface.BUTTON_NEUTRAL 
于 2013-09-30T18:02:27.183 回答
7
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
            builder.setTitle("Alert");
            builder.setIcon(R.drawable.ic_launcher);
            builder.setMessage("Attention");
            builder.setPositiveButton("Get Location",
                    new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int id) {
                            dialog.cancel();

                        }
                    });

            builder.setNeutralButton("Set Location",
                    new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int id) {



                        }
                    });

            builder.setNegativeButton("Exit",
                    new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int id) {
                            dialog.cancel();

                        }
                    });
            builder.show();
于 2013-02-18T11:51:15.820 回答
1

使用它并设置正或负按钮

setButton(int whichButton, CharSequence text, DialogInterface.OnClickListener listener);

参考这个 http://developer.android.com/reference/android/app/AlertDialog.html#setButton(int , java.lang.CharSequence, android.content.DialogInterface.OnClickListener)

于 2012-11-07T11:00:55.873 回答
1

这是我的简短而甜蜜的一个,Android Developer 的优化。它更简洁,使用更少的内存。

    (new AlertDialog.Builder(/*activity*/))
    .setTitle("ALERTTILESTRING")
    .setMessage("alertNameString")
    .setCancelable(false)
    .setNegativeButton("Close",new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int id) {
            dialog.cancel();
        }
    })
    /*insert other Alert Dialog Builder methods here*/
    .show();
于 2014-05-31T17:17:41.700 回答
0

您可以使用 alertDialog 设置三种按钮

.setPositiveButton("name_of_button",LISTENER);

.setNegativeButton("name_of_button",LISTENER);

.setNeutralButton("name_of_button",LISTENER);

听众可能在课堂外或匿名课堂上

.setNegativeButton("Cancel",new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int id) {
            alertDialog.cancel();
        }
    });
于 2012-11-07T11:08:32.337 回答
0

托尼·斯塔克(Tony Stark)在这里发表的好帖子,您可以通过添加图标来美化您的对话框。确保您的可绘制文件夹中有图片。

 builder.setTitle("Message Sent!").setCancelable(false).setNegativeButton("Close",new DialogInterface.OnClickListener() 
                            {public void onClick(DialogInterface dialog, int id) {dialog.cancel();}});
                            AlertDialog alert = builder.create();
                            alert.setIcon(R.drawable.send);//call your image for your icon here
                            alert.show();

例子 在此处输入图像描述

于 2013-11-04T03:42:38.273 回答