我正在应用程序启动时从数据库中检索一些默认值,我正在使用它来设置我的活动中微调项目的选定值。
if( key.equals("default Altitude Units")) {
Spinner s = ((Spinner)findViewById(R.id.spinAltitudeUnits));
ArrayAdapter a = (ArrayAdapter) s.getAdapter();
s.setSelection( a.getPosition(result.getString(2)));
}
代码工作正常然而问题是我在Android Studio中收到一条警告说警告未经检查调用'getposition(T)'作为原始类型的成员'android.widget.ArrayAdapter'< / em>在a.getPosition调用。
我很高兴它正在工作但是对于Android和Java是新手我想要了解并尽可能多地从我的代码中消除警告,所以任何帮助摆脱这个警告都是最受欢迎的。
答案 0 :(得分:3)
你从一些字符串获得位置。在这种情况下刺痛2。 ArrayAdapter可以包含许多类型。例如整数。在你的情况下,不清楚你的ArrayAdapter包含什么。
请改用:
ArrayAdapter<String> a = (ArrayAdapter<String>) s.getAdapter();
答案 1 :(得分:1)
我相信你需要对ArrayAdapter进行参数化。使用以下代码执行此操作:
ArrayAdapter<String> a = (ArrayAdapter<String>) s.getAdapter();
也就是说,如果您的ArrayAdapter包含字符串。
编辑:woops,几秒钟就被打败了。