HashMap get(Key)函数在Android AsyncTask中不起作用

Pet*_*ney 2 java android hashmap android-asynctask

我试图从HashMap作为参数传入的值中获取值AsyncTask.该get(Key)方法无法解决; 我的IDE说

"无法解析方法'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 " ";
     }
}
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚我错过了什么.它的行为就像"params"是一个字符串.

ucs*_*nil 7

实际上你首先需要从数组参数中检索HashMap对象,如下所示:

protected String doInBackground(HashMap... params) {
    HashMap mapYouNeed = params[0];
    String ACTION = mapYouNeed.get("action");
    return ACTION;
}
Run Code Online (Sandbox Code Playgroud)

首先检索映射的原因是因为AsyncTask的输入是一个数组.如果你只传入一个HashMap,那么你需要在索引0处检索元素.HashMap ... paramas表明params是一个HashMap元素数组.