Android 使用逗号分隔符截取在for循环中发布字符串

Android 使用逗号分隔符截取在for循环中发布字符串,android,android-volley,Android,Android Volley,我有一个API,它接受带有逗号分隔符的字符串形式的参数,我需要使用android volley从arraylist中paas参数。日志显示它使用逗号分隔符正确发布,只有循环的第一个元素被发布。 代码我喜欢这个 @Override protected Map<String, String> getParams() { Map<String, String> params = new HashMap<String, String>

我有一个API,它接受带有逗号分隔符的字符串形式的参数,我需要使用android volley从arraylist中paas参数。日志显示它使用逗号分隔符正确发布,只有循环的第一个元素被发布。 代码我喜欢这个

     @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;
    }

};

试试这个,看看是否对你有帮助

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() );
JSONArray listCatId=new JSONArray();
对于(int m=0;m1){
if(m
post要生成哪种类型的请求或字符串的示例我正在获取用户选择的数据,它必须以简单的字符串形式出现,如cat\u id:1,3 sub\u cat id:2,3,4,user id:235,lang\u id,2,3.假设用户选择lang id 1和3,它将被添加到上面显示的langRemoveHash arraylist中,我需要在apitake中以字符串形式将该数组命名为arraylist of string,并添加您想要传递的值,然后使用arraylist.toString()要转换为字符串:)我已经有了从Common类中获取的所有值的数组,即..langRemoveHash和Category。你能给你一个简短的代码示例吗。希望它能对您有所帮助这是我从api得到的响应。需要去掉数组括号和双引号:您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,了解第3行“[“4”,“3”]”附近使用的正确语法,从(
语言
)中选择*,其中
id
在([“4”,“3”])文件名中:/home1/doiteco/public_html/audio_buzz_admin/models/admin_model.php行号:201使用替换函数删除括号i使用的参数(“cat_id”,listCatId.toString().replaceAll(“\[”,”).replaceAll(“\]”,“);在命令不起作用后,它还替换了括号和其他项。请别管它,我已要求对API进行更改。感谢您的帮助:)很好的解决方案payal:)
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() );