可以将R.id的String版本转换为int吗?

2 string int android android-resources

作为练习,我正在建立一个日历。以下是我的代码的一小部分。我有一个class MyCalendarextends Activity. 该活动将被链接到其布局包括七个XML文件TextViews的id小号R.id.day0R.id.day6

如果从转换Stringint,则Activity的findViewById()方法是否可以识别int这些ids 的版本?

        String Days [] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};
        TextView dayViews [];

        private void populateViews (){

            for (int counter = 0; counter < Days.length; counter++){
                int ID = Integer.parseInt("R.id.day"+counter);
                dayViews [counter] = (TextView) findViewById(ID);
                dayViews[counter].setText(Days[counter]);
            }
Run Code Online (Sandbox Code Playgroud)

Ivo*_*ers 5

我自己还没有尝试过。但是这个答案/sf/answers/811700641/建议您可以这样做:

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

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