作为练习,我正在制作日历。以下是我的代码的一小部分。我有class
MyCalendar
extends Activity.
此活动将链接到一个XML文件,其布局包含七个TextView
个id
s R.id.day0
至 R.id.day6
。
如果从String
转换为int
,活动的findViewById()
方法是否会识别这些int
的{{1}}版本?
id
答案 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资源的实际映射。