2017-04-21 3 views
-3

문자열 형식의 매개 변수를 쉼표로 구분하는 API가 있고 안드로이드 발리를 사용하는 arraylist에서 매개 변수를 가져와야합니다. 로그에 쉼표 구분 기호 루프의 첫 번째 요소 만 게시됩니다. 코드는 내가이for 루프에서 쉼표 구분 기호를 사용하여 for 루프에 문자열을 게시합니다. android

 @Override 
    protected Map<String, String> getParams() { 
     Map<String, String> params = new HashMap<String, String>(); 
     params.put("user_id", String.valueOf(Common.UID)); 
     for(int m=0;m<Common.Category.size();m++) 
     { 
      if(Common.Category.size()>1) { 
       if (m < Common.Category.size() - 1) { 
        Log.e("Posting Category params",Common.Category.get(m) + ","); 
        params.put("cat_id", Common.Category.get(m) + ","); 
       } else { 
        Log.e("Posting cat last params", Common.Category.get(m)); 
        params.put("cat_id", Common.Category.get(m)); 
       } 
      } 
      else 
      { 
       Log.e("only 1 Cat params", Common.Category.get(m)); 
       params.put("cat_id", Common.Category.get(m)); 
      } 
     } 
     for(int n=0;n<Common.langRemoveHash.size();n++) { 
      if (Common.langRemoveHash.size() > 1) { 
       { 
        if (n <Common.langRemoveHash.size() - 1) { 
         Log.e("Posting LangId params",Common.langRemoveHash.get(n) + ","); 
         params.put("lang_id", Common.langRemoveHash.get(n) + ","); 
        } else { 
         Log.e("Posting Last LangId ",Common.langRemoveHash.get(n)); 
         params.put("lang_id", Common.langRemoveHash.get(n)); 
        } 
       } 
      } 
       else 
       { 
        Log.e("Posting Only 1 Lang Id ",Common.langRemoveHash.get(n)); 
        params.put("lang_id", Common.langRemoveHash.get(n)); 
       } 

     } 
     for(int p=0;p<subCatArraySize;p++) 
     { 
      if (p>1) { 
       if (p<3) { 
        Log.e("Posting subCatId params", "5" + ","); 
        params.put("sub_cat_id", "5" + ","); 
       } else { 
        Log.e("Posting last subcatId", "15"); 
        params.put("sub_cat_id", "15"); 
       } 
      } 
      else 
      { 
       Log.e("Posting only 1 subcatId", "15"); 
       params.put("sub_cat_id", "15"); 
      } 
     } 
     //params.put("password","123"); 
     //int j=0; 
     //for(String object: langId){ 
      //params.put("languageID["+(j++)+"]", object); 
      // you first send both data with same param name as friendnr[] .... now send with params friendnr[0],friendnr[1] ..and so on 
     //} 
     return params; 
    } 

}; 

로그 캣 적절한 분석

04-21 12:04:12.943 23485-25015/ 
E/Posting Category params: 1, 
04-21 12:04:12.943 23485-25015/  E/Posting cat last params: 3 
04-21 12:04:12.943 23485-25015/z  E/Posting LangId params: 3, 
04-21 12:04:12.943 23485-25015/ E/Posting LangId params: 11, 
04-21 12:04:12.943 23485-25015/E/Posting Last LangId: 4 
04-21 12:04:12.943 23485-25015/E/Posting only 1 subcatId: 15 
04-21 12:04:12.943 23485-25015/E/Posting only 1 subcatId: 15 
04-21 12:04:12.943 23485-25015/E/Posting subCatId params: 5, 
04-21 12:04:12.943 23485-25015/E/Posting last subcatId: 15 
+0

포스트 예를 들어이 일을 시도하고 검사의 도움을 당신을 위해 여부를 보여줍니다 좋아 생성하려는 문자열 –

+0

사용자가 선택한 데이터를 가져 오는 중 cat_id : 1,3 sub_cat id : 2,3,4, user id : 235, lang_id, 2,3.suppose와 같은 간단한 문자열 형식으로 가져와야합니다. 사용자가 la를 선택한 경우 ng id 1 and 3 위의 langRemoveHash arraylist에 추가됩니다. api에서 문자열 형식으로 해당 배열을 paas해야합니다. –

+0

문자열의 arraylist를 가져 와서 arraylist.toString()을 사용하여 값을 추가하십시오. 문자열로 변환하려면 :) –

답변

0

어떤 요청의 유형 또는

JSONArray listCatId = new JSONArray(); 
for (int m = 0; m < Common.Category.size(); m++) { 
      if (Common.Category.size() > 1) { 
       if (m < Common.Category.size() - 1) { 
        Log.e("Posting Category params", Common.Category.get(m) + ","); 
        listCatId.put(Common.Category.get(m)); 
//     params.put("cat_id", Common.Category.get(m) + ","); 

       } else { 
        Log.e("Posting cat last params", Common.Category.get(m)); 
        params.put("cat_id", Common.Category.get(m)); 
       } 
      } else { 
       Log.e("only 1 Cat params", Common.Category.get(m)); 
       params.put("cat_id", Common.Category.get(m)); 
      } 
     } 
     params.put("cat_id",listCatId.toString()); 
+0

이것은 api.need에서 얻은 응답으로 배열 대괄호와 큰 따옴표를 제거합니다. : SQL 구문에 오류가 있습니다. 3 번째 줄에서 '[ "4", "3"] 근처에서 사용할 올바른 구문을 보려면 MySQL 서버 버전에 해당하는 설명서를 확인하십시오. SELECT * FROM ('language') WHERE'id' IN ([ 4 ","3 "]) 파일명 : 광고 /home1/doitteco/public_html/audio_buzz_admin/models/admin_model.php 번호 : 201 –

+0

브래킷을 사용 전 params.put (사용 –

+0

제거하는 기능을 바꾸기"CAT_ID를 " listCatId.toString(). replaceAll ("\\ [", "") .replaceAll ("\\]", "")); 그리고 그것은 쉼표 –