我正在开发一个项目,我正在尝试实现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数组。
答案 0 :(得分:3)
由于postData
中只有一个元素,只需添加如下的下标:
updatedPostData.addAll(postData[0]);
答案 1 :(得分:-1)
您的varargs参数List<NameValuePair>... postData
是List<NameValuePair>
的数组。
尝试protected JSONObject doInBackground(List<NameValuePair> postData)
。