当前位置: 首页 > 知识库问答 >
问题:

警告未选中调用“getposition(T)”

钱和安
2023-03-14

我在应用程序启动时从数据库中检索一些默认值,并使用它来设置活动中微调器项的选定值。

       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中收到一个警告,警告对a.getPosition调用中作为原始类型“android.widget.ArrayAdapter”成员的“getposition(T)”的未检查调用

我很高兴它的工作,但新的Android和Java我想了解和消除尽可能多的警告,从我的代码,所以任何帮助摆脱这个警告将是最受欢迎的。

共有2个答案

金亦
2023-03-14

我相信你需要将你的ArrayAdapter参数化。使用以下代码执行此操作:

ArrayAdapter<String> a = (ArrayAdapter<String>) s.getAdapter();

也就是说,如果您的ArrayAdapter包含字符串。

编辑:哇,被打败了几秒钟。

通典
2023-03-14

你从某个字符串中得到位置。在这种情况下刺2。ArrayAdapter可以包含许多类型。比如整数。在您的情况下,不清楚您的ArrayAdapter包含什么。

使用此选项:

    ArrayAdapter<String> a = (ArrayAdapter<String>) s.getAdapter();
 类似资料:
  • 问题内容: 我的代码如下 “ try”块中的分配会导致警告说明 为什么是这样? 问题答案: 好吧,首先让我们弄清楚问题出在哪里-它在演员表中。这是一个简短的示例: 这仍然有同样的问题。问题在于强制类型转换实际上不会测试任何东西- 因为强制类型转换将有效地转换为原始类型。因为这有点让人惊讶,因为实际上对象 确实 知道所涉及的类,但是考虑类似的情况: 该类型转换将不会检查它是否 确实 是a ,因为该信

  • 问题内容: 令人反感的代码 错误: 不确定这样的错误需要多少信息。 问题答案: 问题在于上面的代码没有使用泛型。 以下将起作用: (如果为,则为要保存的元素的type参数)内部的类型名称告诉编译器应期望的对象类型。 如果尝试添加一个指定类型的对象(例如,在这种情况下,尝试添加和),则会发生编译时错误,这表明正在使用一种非预期类型的​​对象添加。 就是说,应该尽量不要使用该类。为了更多的目的,例如从

  • 我正在Netbeans IDE 8.2中制作一个商店,由于这个错误,我无法编译。我试着通过添加JComboBox来修复它,但是它没有解决我的问题。这个应用程序的网页版运行良好,但我无法编译它。当使用Xlint:Unchecked运行时,这是一个警告:[unchecked]作为原始类型JComboBox list.addItem(s)的成员对addItem(E)的未检查调用;其中E是一个类型变量:E

  • 问题内容: 通过使用我查询文档时,我开始在控制台中收到以下警告 DeprecationWarning:不建议使用collection.find选项[fields],在更高版本中将其删除 为什么会看到此错误以及如何解决?(可能的替代方法) 编辑:添加查询 猫鼬版本5.2.9 问题答案: 更新: 5.2.10已发布,可在此处下载。 使用有mongooose调用上MongoDB的本地驱动程序的方法。 有

  • 奇怪的情况-下面是代码: 构建项目时(在项目属性中使用编译器选项Xlint:unchecked),我得到一个警告: 警告:[未选中]未选中的强制转换 ArrayList list=(ArrayList)obj[1]; 必需:ArrayList 找到:对象 但用同样的方法来浇铸字符串是可以的。这里有什么问题?