Используя android studio и скрипт Google, я пытаюсь добавить несколько строк в листы Google, используя цикл for. Это работает, но иногда он не добавляет все данные, которые я отправляю, он добавляет только несколько строк, а не все. Я не уверен, что это ошибка, связанная с Java или Google Sheets.
метод addItemToSheet, Java:
private void addItemToSheet(final String name, final String extra, final String quantity, final String orderNumber) {
final ProgressDialog loading = ProgressDialog.show(getActivity(),"Adding Order","Please wait");
StringRequest stringRequest = new StringRequest(Request.Method.POST, "URLTOWEBAPP",
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
loading.dismiss();
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
}
) {
@Override
protected Map<String, String> getParams() {
Map<String, String> parmas = new HashMap<>();
//here we pass params
parmas.put("action","addItem");
parmas.put("orderNum",orderNumber);
parmas.put("itemName",name);
parmas.put("quantity",quantity);
parmas.put("extra",extra);
return parmas;
}
};
int socketTimeOut = 2000;
RetryPolicy retryPolicy = new DefaultRetryPolicy(socketTimeOut, 0, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT);
stringRequest.setRetryPolicy(retryPolicy);
if (null != getActivity()){
RequestQueue queue = Volley.newRequestQueue(getActivity());
queue.add(stringRequest);
}
}
Вызов метода addItemToSheet, Java:
btnSubmit.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
if (null != getActivity()){
ArrayList order = ((MainActivity)getActivity()).orderList;
ArrayList addOns = ((MainActivity)getActivity()).addOnList;
String orderId = randomStringGen();
for (int i = 0; i < order.size(); i++){
String itemName = order.get(i).toString();
String addOn = addOns.get(i).toString();
String quantity = order.get(i).toString();
quantity = quantity.substring(quantity.length() - 2, quantity.length() - 1);
itemName = itemName.substring(0, itemName.length() - 4);
System.out.println("IDDDDDD: " + i + " " + itemName + " " + addOn + " " + quantity + " " + orderId );
addItemToSheet(itemName,addOn,quantity,orderId); // Call to method
}
((MainActivity)getActivity()).clearOrderList();
}
}
});
Google Web App:
var ss = SpreadsheetApp.openByUrl("URLTOSHEET");
var sheet = ss.getSheetByName('Items');
function doPost(e){
var action = e.parameter.action;
if(action == 'addItem'){
return addItem(e);
}
}
function addItem(e){
var date = new Date();
var id = sheet.getLastRow(); // Item1
var orderNum = e.parameter.orderNum;
var itemName = e.parameter.itemName;
var quantity = e.parameter.quantity;
var extra = e.parameter.extra;
sheet.appendRow([date,id,orderNum,itemName,quantity,extra]);
return ContentService.createTextOutput("Success").setMimeType(ContentService.MimeType.TEXT);
}
В зависимости от цикла for, например, я ожидаю, что он добавит 5 строк, но вместо этого он добавит только 2 строки, иногда это работает иногдане делает. Обычно это не работает, когда я пытаюсь добавить много строк.