Terry
Terry

Reputation: 14867

Android: integer from xml resource

How do I have to modify my XML resources, or what XML file do I have to create, to access integer values in the same way you access string values with R.string.some_string_resource ?

For example, in the code I want to say:

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

Is it possible?

Upvotes: 136

Views: 87328

Answers (2)

Terry
Terry

Reputation: 14867

Yes it is possible, it would look like this:

  1. Create an xml resources file in the folder /res/values/ called integers.xml.

    You are free to give it any name as you want, but choose one that is obvious.

  2. In that resources file, create your integer values.

    Your file then looks something like that:

    <?xml version="1.0" encoding="utf-8"?>
    <resources>    
        <integer name="maximum">100</integer>
        ...
    
    </resources>
    
  3. Reference the integer value in the Java code like this:

    It's a bit different from the getString(), you have to take a little detour.

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

Upvotes: 315

abolfazl bazghandi
abolfazl bazghandi

Reputation: 995

You must add the integers.xml file to your project

enter image description here

and then

enter image description here

and in integers.xml add this

<integer name="maximum">5</integer>

Upvotes: 10

Related Questions