2016-12-29 65 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);