Android 将HashMap传递给AsyncTask并将其转换为JSONObject

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

我正在向第三方web服务器发送一个请求,该服务器会给出JSON响应。响应包含有关用户的信息。每个用户都有一个“refid”和一些关于用户的其他元素。我当前迭代结果并将每个用户存储到Hashmap中,然后将映射添加到(arraylisthashmap String,String),然后用此数据填充listview。现在我想做的是,当用户按下listview上的按钮时,它会从Arraylist中提取所有refid,并通过AsyncTask发送到我的服务器,以查找与refid的匹配

我的问题是,当refid的数量可能不同时,我应该如何将refid发送到asyntask?我可以获取值和键并创建一个JSONObject,然后将其发送到我的服务器吗?例如{refid=123,refid=345,refid=678}。异步任务的参数是什么?
任何帮助都将不胜感激

您可以执行以下操作:

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