这适用于Android,但我认为这是一个普遍的Java问题,因此我将其标记为。
我正在尝试使用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
,但似乎不接受它。
我做错了什么?
答案 0 :(得分:1)
subCatField.getInt(null)
您正在寻找什么。当然,stringArraySubCategoryX
为static
。
但是......你说:“我正在尝试使用R.array上的反射从列表中获取数组。”
那是int
怎么样?
subCatField.get(null)
将返回Object
Field