我想要做的是改变,我写了一个自定义的DialogFragment的默认背景。 通常情况下,我会通过改变XML布局文件,但是,对于一个DialogFragment这些按钮并不在布局文件中存在的做到这一点。
从本质上讲,我试图让以修改他们访问setPositiveButton,setNegativeButton和setNeutral按钮。 另外,我接下来会尝试让他们通过ID,但是,因为它们不是在布局文件中定义要做到这一点,我没有为他们相应的ID。 我发现了如何修改布局的其余大量的例子,但我不能在任何地方找到正/中性/负按钮是可以修改的。
理想情况下,我会在下面的代码块做到这一点:
.setPositiveButton(R.string.add, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
...
}
})
提前致谢。
下面是代码...按钮实例是有效的创建对话框之后。 希望这可以帮助你。
public static class CustomDialog extends DialogFragment
{
public static CustomDialog newInstance()
{
return new CustomDialog();
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState)
{
super.onCreateDialog(savedInstanceState);
Builder builder = new AlertDialog.Builder(getActivity());
AlertDialog dialog = builder.create();
dialog.setButton(DialogInterface.BUTTON_POSITIVE, "OK",new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
dialog.setButton(DialogInterface.BUTTON_NEGATIVE, "CANCEL",new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
return dialog;
}
@Override
public void onStart()
{
super.onStart();
Button pButton = ((AlertDialog) getDialog()).getButton(DialogInterface.BUTTON_POSITIVE);
Button nButton = ((AlertDialog) getDialog()).getButton(DialogInterface.BUTTON_NEGATIVE);
pButton.setBackgroundColor(getResources().getColor(R.color.Blue));
nButton.setBackgroundColor(getResources().getColor(R.color.Green));
}
}
文章来源: Android App: Replace default button background with custom background in a Dialog Fragment