我正在研究一個項目,我嘗試實現一個ASyncTask以發佈到Web服務器。將ArrayList <NameValuePair>傳遞給ASyncTask和更新值
我有我的類定義如下:
public class PostToAPI extends AsyncTask<List<NameValuePair>, Void, JSONObject> implements DialogInterface.OnCancelListener
我有我的doInBackground方法定義如下:
protected JSONObject doInBackground(List<NameValuePair>... postData)
我想創建一個新的ArrayList,其中將包括在POSTDATA一切加一些額外的值,但我不斷收到錯誤。
下面是我已經試過
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)
得到一個錯誤。錯誤是: 列表中的addAll(java.util.Collection?extends org.apache.http.NameValuePair>)無法應用於(java.util.List [])
現在,看起來像我一樣doInBackground是傳遞一個我不想要的List數組。
感謝您的幫助,您可以提供
這是行不通的,因爲'AsyncTask'需要'doInBackground()'採用可變參數。 –