【问题标题】:Android/Java: using a string for a variableAndroid/Java:使用字符串作为变量
【发布时间】:2011-08-03 18:37:19
【问题描述】:

我正在尝试从包含许多数组的 xml 文件中的字符串数组中读取值。目前我正在使用它来导入数组。

String[] NEWARRAYNAME = getResources().getStringArray(R.array.ARRAYNAME);

我想做的是使用一个随机数从我的文件中获取一个随机数组。我正在考虑在 xml 文档中命名我的所有数组:m1、m2、m3 等,因为我不能只使用数字(我正在尝试模拟 DB 标记)。这就是我目前正在做的事情,以生成包含随机数的字符串。

int i = random.nextInt(3)+ 1;
String ID = "m" + Integer.toString(i);

那么如何使用字符串 ID 从我的 xml 文件中获取数组。 使用 GetResources().getStringArray(R.array.ID) 不起作用。

【问题讨论】:

    标签: android


    【解决方案1】:

    您可以使用getIdentifier 来获取您从 R 中获得的名称的标识符。请注意,它比直接从 R 中使用标识符要慢得多。您还可以将 R 中的 ID 放入一个数组并选择一个随机的。

    【讨论】:

    • 我对 getIdentifier 有点困惑。你能告诉我如何使用它吗?我不确定它会做什么来帮助我检索一个数组而不是所有数组。我可能会有 100 个数组,并且只想用 getResources().getStringArray 检索其中一个
    • getIdentifier 接受三个参数:您要查找的资源的名称(在这种情况下为ID),资源的类型(因为它是 R.array.ID,所以类型是“array” ) 和程序的包名 (context.getPackageName())...它返回一个与 R.array.ID 相同的整数,您可以将该整数与 getStringArray() 一起使用
    • 抱歉打扰了,但是我该如何设置我的新数组?我目前有: int j = getResources().getIdentifier(ID, "array", getPackageName()); String[] NEWARRAY = res.getStringArray(j);
    • 与您通常使用的方法相同,只是在调用 getStringArray 时使用 getIdentifier 的返回值代替 R.array.ID
    猜你喜欢
    • 2014-03-10
    • 1970-01-01
    • 1970-01-01
    • 2013-06-21
    • 2012-07-18
    • 2012-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多