2016-12-29 77 views
0

我需要发布一个像这样的参数。在basicvaluepair中添加arraylist

[uangMuka:0.00, description:lsdkjfasldfjkad;slkfjaslkfjaslkdfjaw, 
item:[5, 4],  
qty:[1.00, 50.00],  
unit:[1, 1],  
price:[100000.00, 50000.00],  
discount:[10.00, 10.00],  
dt:[PS, PS]] 

从Android的,我用这个代码把键和值

ArrayList<NameValuePair> parameter = new ArrayList<NameValuePair>(); 
parameter.add(new BasicNameValuePair("uangMuka", "100")); 
parameter.add(new BasicNameValuePair("id", id)); 

的问题是,我怎么能填补valuearraylist像 parameter.add(新BasicNameValuePair(“项目” ,[1,2])); //例如,这个item有2个值。

我试图把一个列表BasicNameValuePair这样

List<String> list=new ArrayList<String>(); 
list.add("1"); 
list.add("2"); 

ArrayList<NameValuePair> parameter = new ArrayList<NameValuePair>(); 
parameter.add(new BasicNameValuePair("item", list)); 
+0

您coudl重写'BasicNameValuePair'的构造函数以期望'String id,String ... values'或'String id,Object ... values',并使用此数组来标识多个指定的值 – SomeJavaGuy

+0

是theres没有其他方法?或者你能举个例子吗? 我真的不明白@KevinEsche –

+0

@Jobin是没有其他方式?或者你能举个例子吗?我真的没有得到它 –

回答

0

我觉得你收集的选择可以简化为以下签名(只要你想摆脱BasicNameValuePair):

Map<String,ArrayList<String>> BasicNameValuePair = new LinkedHashMap<String,ArrayList<String>>(); 

用法:

Map<String,ArrayList<String>> BasicNameValuePair = new LinkedHashMap<String,ArrayList<String>>(); 

     ArrayList<String> v1 = new ArrayList<>(); 
     v1.add("5"); 
     v1.add("4"); 
     BasicNameValuePair.put("items",v1); 

     ArrayList<String> v2 = new ArrayList<>(); 
     v2.add("1.00"); 
     v2.add("50.00"); 
     BasicNameValuePair.put("qty",v2);