Android应用程序:替换默认按钮背景与对话片段自定义背景(Android App: Replac

2019-11-02 17:17发布

我想要做的是改变,我写了一个自定义的DialogFragment的默认背景。 通常情况下,我会通过改变XML布局文件,但是,对于一个DialogFragment这些按钮并不在布局文件中存在的做到这一点。

从本质上讲,我试图让以修改他们访问setPositiveButton,setNegativeButton和setNeutral按钮。 另外,我接下来会尝试让他们通过ID,但是,因为它们不是在布局文件中定义要做到这一点,我没有为他们相应的ID。 我发现了如何修改布局的其余大量的例子,但我不能在任何地方找到正/中性/负按钮是可以修改的。

理想情况下,我会在下面的代码块做到这一点:

.setPositiveButton(R.string.add, new DialogInterface.OnClickListener() {
                   @Override
                   public void onClick(DialogInterface dialog, int id) {
                       ...
                   }
               })

提前致谢。

Answer 1:

下面是代码...按钮实例是有效的创建对话框之后。 希望这可以帮助你。

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