我正在开发洗衣应用程序,在这个应用程序中,用户可以选择多个项目和我存储的项目
HashMap<String, ArrayList<Integer>> All;
我的HashMap值看起来像这样
Key:Name, Value:[Quantity, Default-Price, Total_price, position]
Key: Trouser, Value: [2, 8, 16, 3]
Key: Shirt, Value: [3, 15, 45, 0]
Key: Coat, Value: [2, 7, 14, 2]
Key: Pants, Value: [3, 10, 30, 1]
所以,我的问题是如何将这些项目发布到server.i我是android新手,所以请帮助我。
这是我的AsyncTask
public static class AddItemDB extends AsyncTask<Void, Integer, Void> {
@Override
protected void onPreExecute() {
super.onPreExecute();
}
@Override
protected Void doInBackground(Void... params) {
All = new HashMap<String, ArrayList<Integer>>();
All.putAll(ListAdapter.DryMap);
All.putAll(ListAdapter.IronMap);
All.putAll(ListAdapter.WashMap);
All.putAll(ListAdapter.WashIronMap);
JSONParser jParser = new JSONParser();
for (Map.Entry<String, ArrayList<Integer>> item : All.entrySet()) {
for (int i = 0; i < All.size(); i++) {
String URL = "http://.com/mis/Laundry/insert_cart.php?" + "p_name=" + All.get(i) + "&p_quantity=" + item.getValue().get(0) +
"&p_price=" + item.getValue().get(1) + "&r_id=2&c_id=1&ct_id=1";
jParser.makeServiceCall(URL, JSONParser.POST);
}
}
return null;
}
@SuppressLint({"ShowToast", "LongLogTag"})
@Override
protected void onPostExecute(Void result) {
super.onPostExecute(result);
Log.d("Mission Successfulllll...............", "");
}
}
当我尝试上面的代码时,我无法在数据库中获得正确的数据。
答案 0 :(得分:1)
试试这段代码希望这项工作
Iterator<Map.Entry<String, ArrayList<Integer>>> iterator = All.entrySet().iterator();
while (iterator.hasNext()) {
Map.Entry<String, ArrayList<Integer>> entry = iterator.next();
System.out.printf("Key : %s and Value: %s %n", entry.getKey(),
entry.getValue().get(0));
String URL = "http://.com/mis/Laundry/insert_cart.php?" + "p_name=" + entry.getKey() + "&p_quantity=" + entry.getValue().get(0) +
"&p_price=" + entry.getValue().get(1) + "&r_id=2&c_id=1&ct_id=1";
String jsonstr = jParser.makeServiceCall(URL, JSONParser.POST);
iterator.remove(); // right way to remove entries from Map,
// avoids ConcurrentModificationException
}
答案 1 :(得分:0)
HashMap<String, ArrayList<Integer>> All = new HashMap<String, ArrayList<Integer>>();
All.putAll(ListAdapter.DryMap);
All.putAll(ListAdapter.IronMap);
All.putAll(ListAdapter.WashMap);
All.putAll(ListAdapter.WashIronMap);
JSONObject object = new JSONObject(ALL);
String URL = "http://.com/mis/Laundry/insert_cart.php?jsondata="+ object.toString();
jParser.makeServiceCall(URL, JSONParser.POST);
答案 2 :(得分:0)
试试这个!
HashMap<String, ArrayList<Integer>> All = new LinkedHashMap<>();
ArrayList<Integer> integers = new ArrayList<>();
integers.add(2);
integers.add(3);
integers.add(4);
integers.add(5);
All.put("Trouser", integers);
All.put("Shirt", integers);
All.put("Coat", integers);
All.put("Pants", integers);
Log.e("mapString", All.toString());
字符串日志如下所示
{Trouser=[2, 3, 4, 5], Shirt=[2, 3, 4, 5], Coat=[2, 3, 4, 5], Pants=[2, 3, 4, 5]}
因此,您可以将其发送到服务器,然后您可以定义 用键解析逻辑!
希望它会帮助你我的朋友!