使用getIdentifier的findViewById不起作用

时间:2015-01-22 21:50:08

标签: java android view casting spinner

我循环遍历一个数组,在for循环中我也使用这个数组来获取几个微调器的ID:

Integer[] ids;
ids = new Integer[8];
ids[0] = R.id.nr_area;
ids[1] = R.id.nr_municipality;
ids[2] = R.id.nr_method;
ids[3] = R.id.nr_bait;
ids[4] = R.id.nr_sessionhours;
ids[5] = R.id.nr_bifangst_art;
ids[6] = R.id.nr_bifangst_released;
ids[7] = R.id.nr_name;

在for循环中:

for (int i = 0; i < fields.length; i++) {
if(fields[i].contains("*") || fields[i].matches("")){

 String test = ids[i].toString();
 int resID = getResources().getIdentifier(test, "id", getPackageName());

 Spinner spnr = (Spinner) findViewById(resID); //error is on this row
 spnr.setBackgroundColor(Color.GREEN);
 }
}

现在我得到的错误如下:

android.support.v7.internal.widget.TintEditText cannot be cast to android.widget.Spinner

所以我想这不能和spinner一起使用,因为我找到了EditText的示例代码..但是我怎样才能做我想用旋转器做的事情?

我将不胜感激任何帮助!几个小时以来一直在和它斗争。非常感谢..

1 个答案:

答案 0 :(得分:1)

我认为问题是其中一个id是EditText或id是EditText,你最近在xml中将它更改为Spinner。确保id是正确的,将它们与xml联系起来,如果问题仍然存在,请尝试再次清理项目以进行索引,应该这样做。

希望这会有所帮助......