我正在尝试从作为参数传递给AsyncTask
的HashMap
中获取一个值。 get(Key)
方法无法解析;我的集成开发环境状态
"无法解析方法'get(java.lang.String)'"。
这是有问题的代码:
public class AmayalockAsyncTask extends AsyncTask<HashMap<String, String>, Void, String> {
protected String doInBackground(HashMap... params) {
String ACTION = params.get("action");
return " ";
}
}
我很难弄清楚我错过了什么。 它的行为就像"参数"是一个字符串。
实际上,
您首先需要从数组参数中检索 HashMap 对象,如下所示:
protected String doInBackground(HashMap... params) {
HashMap mapYouNeed = params[0];
String ACTION = mapYouNeed.get("action");
return ACTION;
}
首先检索映射的原因是因为 AsyncTask 的输入是一个数组。如果您只传入了一个 HashMap,则需要检索索引 0 处的元素。哈希图...paramas 表示 params 是 HashMap 元素的数组。