在我的Android应用程序中,位于以下行:
int add= (int) arg0.getTag();
收到错误:
Cannot cast from Object to int
当我将int
替换为integer
时,会在下面的行中收到另一个错误:
sp = (Spinner) findViewById(add);
错误是:
The method findViewById(int) in the type Activity is not applicable for the arguments (R.integer)
请建议我,希望得到答复。
由于
答案 0 :(得分:2)
无法从Object转换为int
因为当前正在投放getTag()
响应,将对象返回int
使用Integer.parseInt
将字符串解析为Integer:
int add= Integer.parseInt(arg0.getTag().toString());
如果使用try-catch
NumberFormatException
块中包装解析行来处理setTag
答案 1 :(得分:0)
要从对象获取int值,您可以执行以下操作 -
int i = ((Integer) arg0.getTag()).intValue();
在Android中,您不能使用普通整数作为findViewById()的参数。要获得对类中微调器的引用,您可能已经定义了这样的 -
Layout.xml
<Spinner
android:id="@+id/planets_spinner"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
在 .java
中Spinner spinner = (Spinner) findViewById(R.id.planets_spinner);
有关详细信息,请结帐Android Spinner Guide
答案 2 :(得分:0)
尝试使用此方法? findViewByTag();
答案 3 :(得分:0)
您可以将JDK compiler version更新为1.7或更高版本,也可以将Integer.parseInt更新为解析字符串为Integer即可。