Android 将HashMap传递给AsyncTask并将其转换为JSONObject
我正在向第三方web服务器发送一个请求,该服务器会给出JSON响应。响应包含有关用户的信息。每个用户都有一个“refid”和一些关于用户的其他元素。我当前迭代结果并将每个用户存储到Hashmap中,然后将映射添加到(arraylisthashmap String,String),然后用此数据填充listview。现在我想做的是,当用户按下listview上的按钮时,它会从Arraylist中提取所有refid,并通过AsyncTask发送到我的服务器,以查找与refid的匹配 我的问题是,当refid的数量可能不同时,我应该如何将refid发送到asyntask?我可以获取值和键并创建一个JSONObject,然后将其发送到我的服务器吗?例如{refid=123,refid=345,refid=678}。异步任务的参数是什么?Android 将HashMap传递给AsyncTask并将其转换为JSONObject,android,json,arraylist,android-asynctask,hashmap,Android,Json,Arraylist,Android Asynctask,Hashmap,我正在向第三方web服务器发送一个请求,该服务器会给出JSON响应。响应包含有关用户的信息。每个用户都有一个“refid”和一些关于用户的其他元素。我当前迭代结果并将每个用户存储到Hashmap中,然后将映射添加到(arraylisthashmap String,String),然后用此数据填充listview。现在我想做的是,当用户按下listview上的按钮时,它会从Arraylist中提取所有refid,并通过AsyncTask发送到我的服务器,以查找与refid的匹配 我的问题是,当re
任何帮助都将不胜感激 您可以执行以下操作:
listView.setOnItemClickListener(new OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?> arg0, View arg1,int position, long arg3)
{
Hashmap<String , String> map = yourArrayList.get(position);
MyAsyncTask task = new MyAsyncTask(map);
task.execute()
}
});
public class MyAsyncTask extends AsyncTask <Void,Void,Void> {
private Hashmap<String , String> map ;
public MyAsyncTask (HashMap<String,String> m ){
this.map = m ;
}
…
}
JSONObject obj=new JSONObject(yourmap);
请给我反馈
希望有帮助 谢谢你的快速回复。我可以用JSONParser将该映射转换为JSONobject吗?当然可以,您可以将该映射转换为JSONobject。我不知道如何将该映射转换为对象。我习惯于使用JSONParser(URL,List params),我会将字符串值添加为params,但这对我来说是不同的。你能进一步帮助我吗?检查我的更新答案JSONObject构造函数获取一个HashMap并将其转换为JSONObject