将ArrayList <namevaluepair>传递给ASyncTask和Update Values

时间:2016-02-04 19:45:46

标签: java android android-asynctask

我正在开发一个项目,我正在尝试实现ASyncTask以发布到Web服务器。

我的课程定义如下:

Node

我的doInBackground方法定义如下:

public class PostToAPI extends AsyncTask<List<NameValuePair>, Void, JSONObject> implements DialogInterface.OnCancelListener

我正在尝试创建一个新的protected JSONObject doInBackground(List<NameValuePair>... postData) ,它将包含postData中的所有内容以及一些额外的值,但我不断收到错误。

以下是我尝试的内容

ArrayList<NameValuePair>

我在protected JSONObject doInBackground(List<NameValuePair>... postData) { List<NameValuePair> updatedPostData = new ArrayList<>(); updatedPostData.addAll(postData); updatedPostData.add(new BasicNameValuePair(Defines.PreferenceSettings.ACCESS_TOKEN, settings.getString(Defines.PreferenceSettings.ACCESS_TOKEN, ""))); updatedPostData.add(new BasicNameValuePair(Defines.PreferenceSettings.USER_ID, String.valueOf(settings.getInt(Defines.PreferenceSettings.USER_ID, 0)))); } 上收到错误消息。错误是:

updatedPostData.addAll(postData)

现在我觉得像doInBackground正在传递一个我不想要的List数组。

2 个答案:

答案 0 :(得分:3)

由于postData中只有一个元素,只需添加如下的下标:

updatedPostData.addAll(postData[0]);

答案 1 :(得分:-1)

您的varargs参数List<NameValuePair>... postDataList<NameValuePair>的数组。

尝试protected JSONObject doInBackground(List<NameValuePair> postData)