0
這是針對Android的,但我相信這是一個普通的Java問題,所以我將它標記爲這樣。R.array是一個類,但不是一個對象?
我想在R.array上使用反射從列表中獲取數組。該陣列被命名爲stringArraySubCategoryX
其中X替換爲數字0到20這是我的代碼,但我遇到了一個問題:
Field subCatField = R.array.class.getField("stringArraySubCategory" + position);
subCatergorySpinner.setAdapter(ArrayAdapter.createFromResource(InfoActivity.this, subCatField.getInt(R.array), android.R.layout.simple_spinner_item));
問題部分是subCatField.getInt(R.array)
位,這是應該返回所選數組的資源int值。但是Field.getInt(arg)
的論點是一個對象。我檢查了R.array,這說public static final class array
,但似乎沒有被接受。
我在做什麼錯?
哦,對了!那是因爲數組是靜態的,對嗎? – AlbeyAmakiir
正確 - 如果數組是「靜態」,則不需要該類的實例,而是傳遞「null」。 –
在回答你自己的問題時:Android有一個名爲R的對象,它具有靜態的int變量,它們代表所有不是代碼本身的資源(本地化的字符串,圖像等)。整數以每個資源的文件名或xml name =命名。我的strings.xml中有一個字符串數組,但R中的資源標識符是Context.getResources(int)用於獲取資源本身的int。例如。 getResources(R.array.stringArraySubCategory7) – AlbeyAmakiir