Android: integer from xml resource

Terry picture Terry · Oct 10, 2013 · Viewed 70.8k times · Source

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?

Answer

Terry picture Terry · Oct 10, 2013

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);