我有一个非常简单的自定义对话框,我不想添加一个正面按钮而不必修改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();
答案 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();
}