我想自定义AlertDialog的页脚,我的意思是,按钮所在的位置。
我尝试创建一个单独的布局并在调用builder = AlertDialog.Builder();
AlertDialog.Builder builder;
AlertDialog alertDialog;
Context mContext = activity;
LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(mContext.LAYOUT_INFLATER_SERVICE);
View layout = inflater.inflate(R.layout.customdialog, (ViewGroup) activity.findViewById(R.id.layout_root));
TextView dialogTitle = (TextView) layout.findViewById(R.id.dilaogTitle);
dialogTitle.setText("Alert Dialog Test");
TextView closeConfirmationQuestion = (TextView) layout.findViewById(R.id.textview);
closeConfirmationQuestion.setText("Test for AlertDialog");
builder = new AlertDialog.Builder(activity).setCancelable(false).setPositiveButton("Yes"), new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int id)
{
//Do something
}
}).setNegativeButton("No"), new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int id)
{
dialog.cancel();
}
});
builder.setView(layout);
alertDialog = builder.create();
alertDialog.setView(layout, 0, 0, -3, -3);
alertDialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
alertDialog.show();
但我只能自定义AlertDialog的内容,而不能自定义页脚和按钮。这是怎么回事:
我需要知道如何自定义按钮及其支架,我的意思是,AlertDialog的页脚,可能会将颜色或图像作为背景而不是标准的“灰色”颜色,还要设置自定义背景按钮。
感谢。
答案 0 :(得分:4)
如果您希望将AlertDialog更改为其设计格式,我建议您扩展自己的Dialog版本并使用它。
答案 1 :(得分:2)
您还可以使用新的Activity
并将主题设置为Android Manifest中的android:theme="@android:style/Theme.Dialog"
。这将允许您使用自己的XML
布局文件。
答案 2 :(得分:1)
在这种情况下,为什么不使用自定义对话框而不是alertdialog?
答案 3 :(得分:1)
setNegativeButton()
和setPositiveButton()
方法将按钮放在预定义的位置。这就是为什么在将布局扩展到AlertDialog
时,您可以自定义除按钮位置之外的所有内容。
您的选择是:
setNegativeButton()
或此类方法 - 而是在布局中添加自己的自定义按钮。这意味着您需要监听特定的按钮点击。不知何故,这个解决方案对我没有吸引力,因为不打算以这种方式使用AlertDialog @Phil上面的建议看起来很有趣。我没有尝试过。
答案 4 :(得分:0)
此外,在扩展Dialog时,您可能需要对其进行设置,使其不使用默认标题(以便具有一致/完全自定义的外观)。这可以通过以下方式完成:
“dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);”