在Dialog中添加正按钮

时间:2012-05-22 22:08:43

标签: android android-layout

我有一个非常简单的自定义对话框,我不想添加一个正面按钮而不必修改XML文件,就像你使用AlertDialog一样,但我不知道是否可能。这是代码:

final Dialog dialog = new Dialog(MyActivity.this);
dialog.requestWindowFeature(Window.FEATURE_LEFT_ICON);
dialog.setContentView(R.layout.dialog);
dialog.setTitle("Settings");
dialog.show();

3 个答案:

答案 0 :(得分:11)

您应该使用构建器。

LayoutInflater inflater = LayoutInflater.from(this);
View dialog_layout = inflater.inflate(R.layout.dialog,(ViewGroup) findViewById(R.id.dialog_root_layout));
AlertDialog.Builder db = new AlertDialog.Builder(MyActivity.this);
db.setView(dialog_layout);
db.setTitle("settings");
db.setPositiveButton("OK", new DialogInterface.OnClickListener() {
    public void onClick(DialogInterface dialog, int which) {
    }
});
AlertDialog dialog = db.show();

答案 1 :(得分:2)

您可以使用AlertDialog.Builder类:

http://developer.android.com/reference/android/app/AlertDialog.Builder.html

使用AlertDialog.Builder myAlertDialogBuilder = new AlertDialog.Builder(context)创建新的实例。然后使用setTitle()setView()等方法对其进行自定义。该类还具有设置按钮的方法。 setPositiveButton(String, DialogInterface.OnClickListener)设置按钮。最后,使用AlertDialog myAlertDialog = myAlertDialogBuilder.create()获取您的AlertDialog实例,然后您可以使用setCancelable()等方法进一步自定义。

修改:另外,来自文档:http://developer.android.com/guide/topics/ui/dialogs.html

“Dialog类是创建对话框的基类。但是,您通常不应该直接实例化Dialog。而应该使用其中一个......子类”

如果你真的不想使用AlertDialog,最好自己扩展Dialog类,而不是按原样使用它。

答案 2 :(得分:1)

您也可以使用此功能

public void showMessage(String title,String message)
{
    AlertDialog.Builder builder=new AlertDialog.Builder(this);
    builder.setCancelable(true);
    builder.setTitle(title);
    builder.setMessage(message);
    builder.setPositiveButton("OK", new
            DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int which) {
                }
            });
    builder.show();
}