传递整数而不是资源颜色

时间:2017-02-18 18:38:58

标签: java android colors dialog android-resources

我使用library来显示一些不错的对话框。我现在到了崩溃的地步。如果我传递资源(例如R.color.thatRedColor),则对话框将具有红色背景颜色。当我传递一个整数(因为它应该被使用)时,应用程序只是崩溃..有没有办法可以使用整数传递有效值?

colors.xml中使用的行

<color name="indigo">#3f51b5</color>

我的代码

int primaryColor = 11243910;

new MaterialStyledDialog(context)
    .setHeaderColor() //If I pass R.color.indigo, it works. If I pass primaryColor, it crashes..
    .setDescription("Hello")
    .setPositive("Ok", new MaterialDialog.SingleButtonCallback() {
        @Override
        public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {
            //Do something
        }
    })
    .setNegative("No", new MaterialDialog.SingleButtonCallback() {
        @Override
        public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {
            //Don't do anything
        }
    })

    .withDivider(false)
    .show();

1 个答案:

答案 0 :(得分:1)

根据源代码,使用setHeaderColorInt()而非setHeaderColor()来传递实际颜色值而不是颜色资源ID。

如果您收到包冲突,请添加以下内容:

compile ('com.github.javiersantos:MaterialStyledDialogs:1.5.5') {
    exclude group: 'com.afollestad.material-dialogs';
}