我要做的是更改我编写的自定义DialogFragment的默认背景。通常,我会通过更改XML布局文件来完成此操作,但是,对于DialogFragment,这些按钮在布局文件中不存在。
本质上,我试图访问setPositiveButton,setNegativeButton和setNeutral按钮以修改它们。或者,我接下来尝试通过id获取它们,但是,因为它们没有在布局文件中定义,所以我没有相应的id。我已经找到了很多关于如何修改其余布局的例子,但我无法找到正/中性/负面按钮可修改的任何地方。
理想情况下,我可以在以下代码块中执行此操作:
.setPositiveButton(R.string.add, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
...
}
})
提前致谢。
答案 0 :(得分:5)
以下是代码...按钮实例仅在创建对话框后有效。希望这对你有所帮助。
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));
}
}