Android:XML资源中的整数


110

如何使用与访问字符串值相同的方式来修改XML资源或创建什么XML文件来访问整数值 R.string.some_string_resource

例如,在代码中我想说:

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

可能吗?

Answers:


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中使用Integers的首选方法,我通常在代码本身中对其进行硬编码。你的建议是什么?
capt.swag

2
@ capt.swag通常,您可以根据需要在每个类的代码中将整数硬编码为常量。但是,如果需要为不同的布局使用不同的常量(即,网格的列数),则可以使用XML文件将该常量调整为适合屏幕的各种宽度。希望对您
有所

1
我可以直接在XML中使用该整数值吗?
Arbaz.19年

1
@ capt.swag是的,这是首选方法
Bato-Bair Tsyrenov

5

您必须将integers.xml文件添加到您的项目中

在此处输入图片说明

然后

在此处输入图片说明

并在integers.xml中添加此

<integer name="maximum">5</integer>
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.