2016-09-15 35 views
1

我是新的android和java,所以我很抱歉,如果我說的不完全正確。 在我的應用程序中,我希望將ArrayList轉換爲整數 ,以便使用+1來增加每個值。請注意註釋部分,以瞭解我的問題在哪裏。我無法找到正確的方法.. 這就是我現在做的事:Android ArrayList的int

public String mRequest(String mUrl, String mAuth, String mParam, String customerId, ArrayList filter) { 

    InputStream mStreamResponse; 
    String mString = null; 

    try { 

     URL obj = new URL(mUrl); 
     HttpURLConnection con = (HttpURLConnection) obj.openConnection(); 
     con.setRequestMethod("GET"); 
     con.setRequestProperty("Authorization", mAuth); 
     con.setRequestProperty("X-Limit", String.valueOf(xLimit)); 
     con.setRequestProperty("X-Skip", String.valueOf(xSkip)); 
     con.setRequestProperty("X-Sort", "{\"created\":-1}"); 

     String parameters = null; 

     System.out.println("Value of mParam -> " + mParam); 

     if (mParam != null && customerId != null) { 
      Log.e("ERROR", "Ricerca per parametro e customerId"); 
     } else if (mParam != null) { 
      parameters = "\"number\":{\"$regex\":" + mParam + "}"; 
     } else if (customerId != null) { 
      parameters = "\"customer.id\":{\"$eq\":" + "\"" + customerId + "\"" + "}"; 
     } else { 
      parameters = "\"number\":{\"$regex\":\"\"}"; 
     } 

     System.out.println("parameters"); 
     System.out.println(parameters); 

     if (filter != null) { 

      //convert ArrayList to Array 
      Object[] mArray = filter.toArray(); 

      String filterGroup = mArray[0].toString() + ".id"; 
      System.out.println("Group selected -> " + filterGroup); 

      for (int i = 1; i < mArray.length; i++) { 
       System.out.println("Value -> " + mArray[i]); 
      } 

      String pFilter = null; 

      for (int i = 1; i < mArray.length; i++) { 

       /* 
       * 
       * This is where I need to change value in 
       * pos i with i + 1 
       * 
       */ 


       switch (mArray[i].toString()) { 
        case "0": 
         mArray[i] = "1"; 
         break; 
        case "1": 
         mArray[i] = "2"; 
         break; 
        case "2": 
         mArray[i] = "3"; 
         break; 
        case "3": 
         mArray[i] = "4"; 
         break; 
        case "4": 
         mArray[i] = "5"; 
         break; 
        case "5": 
         mArray[i] = "6"; 
         break; 
        case "6": 
         mArray[i] = "7"; 
         break; 
        case "7": 
         mArray[i] = "8"; 
         break; 
        case "8": 
         mArray[i] = "9"; 
         break; 
        case "9": 
         mArray[i] = "10"; 
         break; 
        case "10": 
         mArray[i] = "11"; 
         break; 
        case "11": 
         mArray[i] = "12"; 
         break; 
        case "12": 
         mArray[i] = "13"; 
         break; 
       } 

       if (mArray.length == 2){ 
        pFilter = mArray[i].toString(); 
       } else { 

        if (mArray[i] != mArray[mArray.length - 1]) { 

         if (pFilter != null) { 
          pFilter = pFilter + mArray[i].toString() + ","; 
         } else { 
          pFilter = mArray[i].toString() + ","; 
         } 

        } else { 
         pFilter = pFilter + mArray[i].toString(); 
        } 
       } 

      } 

      String mFilter = "[" + pFilter + "]"; 
      System.out.println("Insert value in a string -> " + mFilter); 

      String tempParam = null; 
      if (filterGroup.equals("assignee")) { 
       tempParam = "{\"$eq\":" + mFilter + "}"; 
      } else { 
       tempParam = "{\"$in\":" + mFilter + "}"; 
      } 

      //Override the value with the same filterGroup 
      if (filterMap.containsKey(filterGroup)) { 
       String toOverride = filterGroup; 
       filterMap.remove(filterGroup); 
       filterMap.put(toOverride, tempParam); 
      } else { 
       filterMap.put(filterGroup, tempParam); 
      } 

      //iterate 
      for (Map.Entry<String, String> entry : filterMap.entrySet()) { 

       switch (entry.getKey()) { 
        case "status.id": 
         status = "\"" + entry.getKey() + "\":" + entry.getValue(); 
         break; 
        case "queue.id": 
         queues = "\"" + entry.getKey() + "\":" + entry.getValue(); 
         break; 
        case "type.id": 
         types = "\"" + entry.getKey() + "\":" + entry.getValue(); 
         break; 
        case "severity.id": 
         severities = "\"" + entry.getKey() + "\":" + entry.getValue(); 
         break; 

        case "assignee.id": 

         mytickets = "\"" + entry.getKey() + "\":" + entry.getValue(); 
         break; 

       } 

      } 

      filterMapValues = parameters ; 

      if (status != null) { 
       filterMapValues += ", " + status; 
      } 

      if (queues != null) { 
       filterMapValues += ", " + queues; 
      } 

      if (types != null) { 
       filterMapValues += ", " + types; 
      } 

      if (severities != null) { 
       filterMapValues += ", " + severities; 
      } 

      if (mytickets != null) { 
       filterMapValues += ", " + mytickets; 
      } 

      String myFilter = "{" + filterMapValues + "}"; 
      System.out.println("myFilter -> " + myFilter); 

      //setup request header 
      con.setRequestProperty("X-Filter", myFilter); 

     } else { 

      String xFilter = "{\"status.id\":" + statusAll + ", \"queue.id\":" + queueAll + ", \"type.id\":" + typeAll + ", \"severity.id\":" + severityAll + "," + parameters + "}"; 
      con.setRequestProperty("X-Filter", xFilter); 
      System.out.println("Reset all -> " + xFilter); 

     } 

     int responseCode = con.getResponseCode(); 
     System.out.println("\nSending 'GET' request to URL : " + mUrl); 
     System.out.println("Response Code : " + responseCode); 

     mStreamResponse = con.getInputStream(); 

     BufferedReader reader = new BufferedReader(new InputStreamReader(mStreamResponse)); 
     StringBuilder sb = new StringBuilder(); 

     String line = null; 
     try { 
      while ((line = reader.readLine()) != null) { 
       sb.append(line).append('\n'); 
      } 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } finally { 
      try { 
       mStreamResponse.close(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
     } 

     mString = sb.toString(); 

    } catch (Exception e) { 

    } 


    return mString; 
} 

我該怎麼辦?

在此先感謝。

編輯 我開始了,因爲在POS#0環在POS機#1我救filterGroup價值,這是一個字符串,我需要MENAGE爲INT僅在POS> 0

+0

你想從1整數插入到... n的MARRAY?正確 –

+0

是的,請參閱我的編輯 – andrew

+0

檢查我的答案 –

回答

0

你的代碼值是正確的只是改變for循環的初始值從0而不是1開始是這樣的:

int tempValue = 0; 
    for (int i = 0; i < mArray.length; i++) { 
    { 
    // increasing your mArray value 
    tempValue = (Integer) mArray[i] + 1; 
    mArray[i] = tempValue; 


    //Rest of your code 

    } 
+0

是的,請參閱我的編輯,我會更好地解釋 – andrew

+0

用這種方法我得到了這個錯誤在線tempValue = Integer.parseInt(mArray [i])+ 1; - >在Integer中的parseInt(java.lang.String)不能應用到(java.lang.Object) – andrew

+0

現在檢查更新了答案 – Anjali

0

做follwoing

步驟1:創建一個滿足HOD

private List<Integer> stringToIncrementedString(ArrayList<String> stringArrayList){ 
    List<Integer> arrayInt; 
    arrayInt = new ArrayList<Integer>(); 
    for(int i=1 ;i<stringArrayList.size();i++) 
     arrayInt.add(Integer.parseInt(stringArrayList.get(i))+1); 

    return arrayInt; 
} 

步驟2:呼叫從那裏你want.It將返回遞增值ArrayList的這種方法。

+0

好吧,但我不能調用這個方法,我的ArrayList包含例如:pos [0] =「status」,pos [1] =「0」,pos [2] =「1」,我只需要在pos> 0 – andrew

+0

好的,我會根據你的回答改變它。只要給我幾分鐘 – Dentor

+0

它總是pos [0] =狀態? – Dentor

0

第一關:

我想轉換一個ArrayList整數[...]

ArrayList<E>E型一個集合對象可以是任何對象或原始。你真正要求的是如何轉換ArrayList<String>(看到它是String類型的ArrayList )爲整數數組。我可以看到你已經轉換的ArrayList<String>Object[]Object數組,可容納兩個整數和字符串),使用在實施例以下代碼行上面給出:

Object[] mArray = filter.toArray(); 

再回到原來的答案,這將做到這一點:

int[] mArray = new int[filter.size()]; 
    for (int i = 0; i < filter.size(); i++) { 
     int value = Integer.parseInt(filter.get(i)); 
     mArray[i] = value++; 
    } 
0

你可以試試這個請。

爲內刪除您的開關外殼和下面替換它。希望你想要這樣的事情。

for(int i=0; i<mArray.length(); i++){ 
mArray[i] = i+1; 
} 

讓我知道..

+0

這不適合我,東西緊急 – andrew