【发布时间】:2022-01-31 03:09:42
【问题描述】:
在我的应用程序中,我正在尝试使用片段中的哈希图与 API 连接。问题似乎是我连接到 API 的异步任务不想接受我的请求。错误显示预期的 URL 方案 'http' 或 'https' 但没有找到冒号
这是一个应用程序,我在其中使用微调器,因此用户可以选择,根据他的选择,将加载不同的数据。我试图在哈希映射中摆弄,但现在问题似乎出在创建任务中。
这是我启动任务的微调器
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 的值。感谢您的帮助
【问题讨论】:
-
这里的 url1,2,3 是什么?它属于哪个类?
-
我有一个特殊的 url 类,我从中获取构造函数。这里的网址只是看起来像这样的字符串:
Urls url1 = new Urls("http://api.auroras.live/v1/?type=all&lat=40.7813913&long=-73.976902&forecast=false&threeday=false") ; -
您在评论中添加的网址是有效的。请调试您的代码,以解决正在执行的情况,可能是一个无效的 URL。在旁注中,只需将所有这些 url 放入
List并使用索引获取它们,即 Spinner index-->List index .. -
我不明白为什么你有一个特殊的字符串对象。只需传递字符串,您的
url变量无论如何都会输入到字符串String url ="";。这只是 URL,而不是神经手术。 -
@reportgunner 这里不需要消极。我在 android 中开发了大概三个月,所以是的,我不知道做事的所有正确方法。但是,嘿,这就是我来这里寻求建议的原因。如果我对你来说太慢了,我很抱歉,但我没有从你的回答中得到该怎么做,坦率地说,我更愿意看到一个代码示例。