Как получить логическое значение из пользовательского логического атрибута для текущей темы? - PullRequest
0 голосов
/ 13 марта 2020

Я устанавливаю пользовательский атрибут с логическим форматом в моей теме.

<attr name="isCompound" format="boolean" />

Когда я пытаюсь получить этот атрибут в моем коде, используя следующую команду

TypedValue typedValue = new TypedValue();
getTheme().resolveAttribute(R.attr.isCompound, typedValue, true);
if(typedValue.data) {
    ...
}

, я получаю сообщение об ошибке, что typedValue.data (int) не может быть преобразовано в логическое значение. У меня вопрос, как мне получить логическое значение isCompound из текущей темы?

1 Ответ

0 голосов
/ 13 марта 2020

Спасибо @Mike M. за комментарий

Blockquote "Поле данных содержит 0 или 1, которые изначально были заданы как" false "или" true "." - https://developer.android.com/reference/android/util/TypedValue#TYPE_INT_BOOLEAN

Документ говорит, что возвращает 1 для истины и 0 для ложных. Но когда я проверяю, он возвращает -1 для истинного и 0 для ложного.

Я думаю, безопасным способом будет проверка на ложное.

...