你能将R.id的String版本转换成int吗?

时间:2014-04-23 13:28:42

标签: android string int android-resources

作为练习,我正在制作日历。以下是我的代码的一小部分。我有class MyCalendar extends Activity. 此活动将链接到一个XML文件,其布局包含七个TextViewid s R.id.day0 R.id.day6

如果从String转换为int,活动的findViewById()方法是否会识别这些int的{​​{1}}版本?

id

3 个答案:

答案 0 :(得分:4)

我自己没试过。但是这个答案https://stackoverflow.com/a/11595723/1514861建议你可以这样做:

private String getStringResourceByName(String aString) {
  String packageName = getPackageName();
  int resId = getResources().getIdentifier(aString, "string", packageName);
  return getString(resId);
}

编辑:我认为您还需要将"string"替换为"id"

答案 1 :(得分:0)

绝对不是。 Java中的R类是编译时生成的ID。

我愿意:

final int[] days = { R.id.day0, R.id.day1, ... };
for (int day : days) {
    // ...
}

答案 2 :(得分:0)

NO,int ID = Integer.parseInt("R.id.day"+counter);,你在那里所做的是将String表示为Integer,而不是从R class到xml资源的实际映射。