gpt4 book ai didi

java - 将参数传递给异步类,使 param[0] 和 params[1] 包含不同的值

转载 作者:太空宇宙 更新时间:2023-11-03 12:47:50 25 4
gpt4 key购买 nike

我正在开发一个 Android 天气应用程序。我将邮政编码作为输入传递给异步任务类。但我想连同国家代码一起传递。

     @Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_refresh) {
FetchWeatherTask weatherTask = new FetchWeatherTask();
weatherTask.execute("110087"); //THE ARGUMENT I PAASED IS POSTAL CODE

return true;
}
return super.onOptionsItemSelected(item);
}

我也想传递国家代码(例如 IN),这样当我构建我的 uri 时它有邮政编码,IN

示例:

http://api.openweathermap.org/data/2.5/forecast/daily?q=94043&mode=json&units=metric&cnt=7&APPID=74250c25b0f8a52f176e6d6e3717e285

如果我包括国家代码,它应该是:

http://api.openweathermap.org/data/2.5/forecast/daily?q=94043,IN&mode=json&units=metric&cnt=7&APPID=74250c25b0f8a52f176e6d6e3717e285

代码:

String format = "json";
String units = "metric";
int numDays = 7;

try {
// Construct the URL for the OpenWeatherMap query
// Possible parameters are avaiable at OWM's forecast API page, at
// http://openweathermap.org/API#forecast
final String FORECAST_BASE_URL =
"http://api.openweathermap.org/data/2.5/forecast/daily?";
final String QUERY_PARAM = "q";
final String FORMAT_PARAM = "mode";
final String UNITS_PARAM = "units";
final String DAYS_PARAM = "cnt";
final String APPID_PARAM = "APPID";

Uri builtUri = Uri.parse(FORECAST_BASE_URL).buildUpon()
.appendQueryParameter(QUERY_PARAM, params[0])
.appendQueryParameter(FORMAT_PARAM, format)
.appendQueryParameter(UNITS_PARAM, units)
.appendQueryParameter(DAYS_PARAM, Integer.toString(numDays))
.appendQueryParameter(APPID_PARAM, BuildConfig.OPEN_WEATHER_MAP_API_KEY)
.build();

URL url = new URL(builtUri.toString());

Log.v(LOG_TAG, "Built URI " + builtUri.toString());

简单的解决方案是通过:

weatherTask.execute("110087IN");

但我想在 uri 构建时追加查询,而且我想将 2 个实体传递给类,例如 params[0] 是“110087”,所以 params[1] 应该是“IN”。

我希望你能理解这个问题

最佳答案

AsyncTaskexecute() 方法可以接受多个参数。如果您需要传递更多参数,您只需这样做:

weatherTask.execute("110087", "IN")

那么params[0]就是"110087"params[1]就是"IN"

关于java - 将参数传递给异步类,使 param[0] 和 params[1] 包含不同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38913442/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com