android - GroupModel 不能转换为另一个模型
问题描述
我正在尝试将数据从 Web 服务拉到链接的微调器,同时没有数据到两个微调器。这部分代码给出了一个错误:
spinnerFleet.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
FleetModel selectedItem = (FleetModel) adapterView.getSelectedItem(); /*I think there was an error in this part of the code */
int vgID = displayIdData(selectedItem);
String jsonString = "{\"params1\":\"" + session_id + "\"," +
"\"params2\":\"5\"," +
"\"params3\":\"0\"," +
"\"params4\":\"0\"," +
"\"params5\":\"0\"," +
"\"params6\":\""+vgID+"\"," +
"\"params7\":\"0\"," +
"\"params8\":\"" + user_id + "\"}";
new LoadSpinnerGroupTask().execute(jsonString);
}
解决方案
显然,adapterView.getSelectedItem()
返回 GroupModel,而不是 FleetModel。因此,如果 FleetModel 不扩展 GroupModel,则会抛出强制转换错误。
您的适配器项目中的数据类型是什么?把它改成 FleetModel,或者直接写GroupModel selectedItem = (GroupModel) adapterView.getSelectedItem();
试试这样:
spinnerFleet.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
FleetModel selectedItem = stateAdapter.getItem(i); /*I think there was an error in this part of the code */
int vgID = displayIdData(selectedItem);
String jsonString = "{\"params1\":\"" + session_id + "\"," +
"\"params2\":\"5\"," +
"\"params3\":\"0\"," +
"\"params4\":\"0\"," +
"\"params5\":\"0\"," +
"\"params6\":\""+vgID+"\"," +
"\"params7\":\"0\"," +
"\"params8\":\"" + user_id + "\"}";
new LoadSpinnerGroupTask().execute(jsonString);
}
推荐阅读
- pandas - 使用一个查找数据框中的索引和列在另一个数据框中创建一个新列
- jupyter-notebook - 如何在 google colab 中安装 carla 模拟器
- java - Java 从对象字段构建嵌套 HashMap
- python - 在 Python 中组合元组列表中的值以保留预期的输出格式
- compiler-construction - 语言的上下文无关语法 {a^ib^jc^i}
- c++ - 编译器通过将数组传输到函数给我一个错误
- python - Python 和 SAS 生成具有相同绝对值的 PCA 数据。值但倒置符号 - 为什么?
- google-apps-script - 基于另一个工作表中的选项的带有条件下拉列表的电子表格
- java - ParDo 函数不等待 Apache BEAM 中的窗口
- javascript - 查找所有满足测试功能的对象索引,如 array.findIndex() 但超过第一个索引