安卓:从XML资源获取整数

133

我需要如何修改我的XML资源文件,或者创建哪个XML文件,才能像访问字符串资源R.string.some_string_resource一样访问整数值?

例如,在代码中我想这么写:

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

可以吗?

2个回答

314

是的,这是可能的,它看起来会像这样:

  1. 在目录/res/values/中创建一个名为integers.xml的xml资源文件。

    您可以随意选择任何名称,但应选择一个明显的名称。

  2. 在该资源文件中,创建您的整数值。

    然后您的文件看起来会像这样:

<?xml version="1.0" encoding="utf-8"?>
<resources>    
    <integer name="maximum">100</integer>
    ...

</resources>
  • 在Java代码中引用整数值的方法:

    这与使用getString()的方法有所不同,您需要绕一个小弯路。

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

    1
    那是一个双精度浮点数,不是一个整数。或许你可以在另一个 StackOverflow 的问题里询问这个。 - Terry
    1
    @Terry,这是在Android中使用整数的首选方法吗?我通常会在代码本身中硬编码它。你有什么建议吗? - capt.swag
    2
    通常情况下,您会在每个类的代码中将整数硬编码为常量。但是,如果您需要针对不同的布局(例如网格的列数)使用不同的常量,则可以使用XML文件将该常量适应于屏幕的各种宽度。希望这有所帮助。 - rommex
    1
    我可以直接在XML中使用该整数值吗? - Arbaz.in
    1
    @capt.swag 是的,那是首选的方法。 - Bato-Bair Tsyrenov
    显示剩余3条评论

    9

    您需要将integers.xml文件添加到项目中

    图片描述在这里输入

    然后

    图片描述在这里输入

    在integers.xml中添加以下内容

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

    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接