在我的应用程序中,我正在尝试使用片段中的哈希图连接 API。问题似乎是我连接到 API 的异步任务不想接受我的请求。错误提示 Expected URL scheme ‘http’ or ‘https’ but no colon was found
这是一个应用程序,我在其中使用微调器,因此用户可以根据自己的选择选择加载不同的数据。我试图在哈希映射中摆弄,但现在问题似乎出在创建任务中。
这是我启动任务的微调器
spinner.setAdapter(adapter);
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener(){
@Override
public void onItemSelected(AdapterView<?> adapterView, View view,
int position, long id){
Toast.makeText(getActivity(),"Location selected: "+locations[position], Toast.LENGTH_SHORT )
.show();
map.get(locations[position]);
//create the task
ChooseLocationTask task = new ChooseLocationTask(location, position, value);
// start the task
task.execute();
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
}
});
这是异步任务的构造函数,它似乎也不起作用:
this.location = location;
this.value = value;
String url ="";
switch(selected){
case 1:
url = url1.getUrl();
break;
case 2:
url= url2.getUrl();
break;
case 3:
url= url3.getUrl();
break;
case 4:
url= url4.getUrl();
break;
case 5:
url = url5.getUrl();
break;
case 6:
url = url6.getUrl();
break;
case 7:
url = url7.getUrl();
break;
case 8:
url= url8.getUrl();
break;
case 9:
url = url9.getUrl();
}
request = new Request.Builder().url(url).build();
}
logcat 中的错误表明问题出在第一个代码示例中的创建任务和第二个示例中的请求中。我希望用户在单击微调器中的某些字段时看到来自 API 的值。谢谢你的帮助
原文由 Albína Mrázová 发布,翻译遵循 CC BY-SA 4.0 许可协议
网址必须以
http://
或https://
,您的网址是""
编辑:我看到的另一个可能的问题是你的 switch 语句中没有
default:
分支 - 如果变量selected
的值小于 1 或大于 9 你的 url将为空,因此不会以http://
或https://
此外,您似乎从未使用过名为
value
的变量。也许您打算在 switch 语句中使用它?