Android: целое число из xml-ресурса


110

Как мне изменить свои XML-ресурсы или какой XML-файл мне нужно создать, чтобы получить доступ к целочисленным значениям так же, как вы обращаетесь к строковым значениям R.string.some_string_resource?

Например, в коде я хочу сказать:

ProgressDialog progressBar = new ProgressDialog(getContext());
progressBar.setMax(getInteger(R.integer.maximum));

Является ли это возможным?

Ответы:


263

Да, возможно, это будет выглядеть так:

  1. Создайте файл ресурсов xml в папке с /res/values/именем integers.xml.

    Вы можете дать ему любое имя, как хотите, но выберите очевидное.

  2. В этом файле ресурсов создайте целочисленные значения.

    Ваш файл будет выглядеть примерно так:

    <?xml version="1.0" encoding="utf-8"?>
    <resources>    
        <integer name="maximum">100</integer>
        ...
    
    </resources>
  3. Ссылайтесь на целочисленное значение в коде Java следующим образом:

    Это немного отличается от того getString(), что вам нужно сделать небольшой крюк.

    ProgressDialog progressBar = new ProgressDialog(getContext());
    int max = getContext().getResources().getInteger(R.integer.maximum);
    progressBar.setMax(max);

1
Это двойное значение, а не целое число. Возможно, вы зададите это в отдельном вопросе на StackOverflow.
Терри

1
@Terry Итак, это предпочтительный метод использования целых чисел в Android, я обычно жестко кодирую его в самом коде. Каковы ваши рекомендации?
capt.swag

2
@ capt.swag Обычно вы жестко кодируете целые числа как константы в коде каждого класса, если это необходимо. Но если вам нужно иметь разные константы для разных макетов (например, количество столбцов для сетки), вы будете использовать файлы XML, чтобы адаптировать эту константу к разной ширине экрана. Надеюсь, что это поможет
rommex

1
Могу ли я использовать это целочисленное значение непосредственно в XML?
Arbaz.in 05

1
@ capt.swag да, это предпочтительный метод
Бато-Баир

5

Вы должны добавить файл inteers.xml в свой проект

введите описание изображения здесь

а потом

введите описание изображения здесь

и в inteers.xml добавьте это

<integer name="maximum">5</integer>
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.