1

我正在尝试使用 volley 库从数据库中选择的用户名制作一个数字选择器。我的 php 脚本的响应如下所示:

[{"username":"adam"},{"username":"tomasz"},{"username":"komercja"}]

我的号码选择器代码如下所示

        JSONArray arr = null;
        try {
            arr = new JSONArray(responsefromphp);
        } catch (JSONException e) {
            e.printStackTrace();
        }
        List<String> list = new ArrayList<String>();
        for(int i = 0; i < arr.length(); i++){
            try {
                list.add(arr.getJSONObject(i).getString("username"));
            } catch (JSONException e) {
                e.printStackTrace();
            }
        }
        picker.setDisplayedValues(null);
        picker.setMinValue(0);
        picker.setMaxValue(arr.length()-1);
        String [] userlist = list.toArray(new String[1]);
        picker.setDisplayedValues(userlist);

如果我将来自 php 脚本的响应硬编码为字符串

String responsefromphp = [{"username":"adam"},{"username":"tomasz"},{"username":"komercja"}]

我的号码选择器运行良好,但是当我尝试使用 volley 库从 php 脚本中获取数据时,我必须将号码选择器代码放在 volley onresponse 中,并且当我运行活动时,号码选择器显示“n”作为首选。其他值仍然可以,如果我上下移动数字选择器'n'更改为第一个用户名。

我不明白为什么这个'n'值在这里并且想要摆脱它。

我想将我的响应从 volley 保存到 volley 之外的 String 变量,然后将其放入我的数字选择器代码中,但是如果我试图在 volley 的响应中设置 String 变量,我就不能在外面使用它。

如何从我的数据中删除这个“n”值?

4

0 回答 0