9

我有一个非常简单的自定义对话框,我不想在不修改 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();
4

3 回答 3

13

您应该使用构建器。

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();
于 2012-05-22T22:24:46.427 回答
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 类,而不是按原样使用它。

于 2012-05-22T22:18:33.603 回答
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();
}
于 2016-04-18T03:26:48.433 回答