首页 > 解决方案 > 如何使用 Volley 将 Recyclerview 列表发送到服务器

问题描述

我创建了一个项目,其中有一个带有 3 个编辑文本和一个按钮的自定义警报对话框。在按钮上单击它将我的数据成功添加到 Recyclerview 并且它工作正常。

现在我想使用 volley Post 方法将 recyclerview 数据发布到服务器,任何人都可以帮助我我该怎么做我只需要知道如何将 recyclerview(我的 Recyclerview 列表)的数据发送到服务器。我想将数组中对象的完整列表发布到服务器。

我应该向我的参数发送什么,以便我成功地将 recyclerview 数据发布到我的服务器。

我已经到达几乎那里,但我想要我的同一个数组列表数据中的所有对象但是我得到不同的数组列表和不同的对象(需要一个数组列表中的所有对象)

需要像这样的输出

 [{
    "movie_name":"trter",
    "movies_Add":"hgjhj90",
    "movie_no":"8787878787"
    }
    {
    "movie_name":"trter",
    "movies_Add":"hgjhj90",
    "movie_no":"8787878787"
    }
    {
    "movie_name":"trter",
    "movies_Add":"hgjhj90",
    "movie_no":"8787878787"
    }
    ]

代码

 JSONArray movieArray = new JSONArray();
                for (int i = 0; i <= movieList.size(); i++) {
                    JSONObject movieObject = new JSONObject();
                    try {
                        movieObject.put("movie_name", "" + member_name);
                        movieObject.put("movies_Add", "" + member_adds);
                        movieObject.put("movie_no", "" + member_contacts);
                        movieArray.put(movieObject);
                    } catch (JSONException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                }
                String jsonStr = movieArray.toString();

                Log.i("jsonobj12", String.valueOf(movieArray));
                Log.i("jsonobj123", String.valueOf(movieList1.size()));

记录数据

2020-02-14 09:49:54.283 17587-17587/com.example.raid I/jsonobj12: [{"movie_name":"trter","movies_Add":"hgjhj90","movie_no":"8787878787"}]
2020-02-14 09:49:54.283 17587-17587/com.example.raid I/jsonobj123: 1
2020-02-14 09:50:03.381 17587-17587/com.example.raid I/jsonobj12: [{"movie_name":"tertre","movies_Add":"hgvjnbk99090","movie_no":"7687687868"}]
2020-02-14 09:50:03.381 17587-17587/com.example.raid I/jsonobj123: 2

标签: androidandroid-recyclerviewandroid-volley

解决方案


我想指出您的代码中有一些问题,也许其中之一是解决您的问题。确定真正的问题很困难,因为您没有提供足够的信息:

  1. 这个循环for (int i = 0; i <= movieList.size(); i++) {过于频繁地迭代一次。假设您的 movieList 有 3 个元素,您的循环将为 (0,1,2,3) 中的每个 i 进行迭代,但您的列表只有索引 (0,1,2),因为数组/列表以索引 0 开头。所以你应该i < movieList.size()在这里使用。
  2. 您确定将正确的项目添加到您的电影对象吗?movieObject.put("movie_name", "" + member_name);使用未在循环中更新的变量member_name,您可能需要使用movieList.get(i).member_name或类似的(请提供更多信息,movieList 究竟是什么样的)。同样适用于以下两行
  3. 在您使用的日志中,movieList1但在您使用的循环movieList中,您确定两个列表相同吗?

推荐阅读