首页 > 解决方案 > 另一个 recyclerview 适配器中的 Recyclerview 未显示与项目相关的项目

问题描述

我正在开发一个 Android 应用程序。

有一个 recyclerview 显示用户消息,适配器中有另一个 recyclerview 从第一个 recyclerview 显示用户对消息的响应。

它正在工作,但不是我想要的。

每条消息中显示的响应并不总是与该消息相关的响应。

例如,在消息 #3 处显示对消息 #3 的响应,在消息 #2 处显示对消息 #3 和 #2 的响应,在消息 #1 处显示对消息 #3、# 的响应2和#1。

刷新视图后,这可能会有所不同,显示的响应可能会有所不同。

这是适配器内部管理响应回收器视图的一段代码;

 //respuestas

        holder.recyclerViewPosts.setHasFixedSize(true);
        holder.recyclerViewlayoutManager = new LinearLayoutManager(context);
        holder.recyclerViewPosts.setLayoutManager(holder.recyclerViewlayoutManager);

        subjectsList = new ArrayList<>();
        AsyncHttpClient client = new AsyncHttpClient();
        RequestParams params = new RequestParams();
        params.put("origen", subjects.get(position).id_mensaje_chat);

        params.put("rnd", getSaltString());

        client.get(HTTP_JSON_URL, params, new TextHttpResponseHandler() {
             @Override
             public void onSuccess(int statusCode, Header[] headers, String res) {
             // called when response HTTP status is "200 OK"
               Log.d("RES SUVJETC","respuesta chat "+res);
                 try {
                     JSONArray jsonArray = new JSONArray(res);

                      for(int i = 0; i<jsonArray.length(); i++) {
                         MensajesRespuestaChat GetDataAdapter2 = new MensajesRespuestaChat();
                         JSONObject json = null;
                           try {
                             json = jsonArray.getJSONObject(i);

        GetDataAdapter2.setid_respuesta(json.getString("id_respuesta"));
        GetDataAdapter2.setemisor(json.getString("emisor"));
        GetDataAdapter2.settexto(json.getString("texto"));
        GetDataAdapter2.setfecha(json.getString("fecha"));
        GetDataAdapter2.setorigen(json.getString("origen"));
        GetDataAdapter2.setnombre(json.getString("nombre"));
        GetDataAdapter2.setapellidos(json.getString("apellidos"));

                           } catch (JSONException e) {
                                e.printStackTrace();
                               }
                             subjectsList.add(GetDataAdapter2);
                          }
           recyclerViewadapter = new RecyclerViewChatRespuestaCardViewAdapter(subjectsList, context);
                                holder.recyclerViewPosts.setAdapter(recyclerViewadapter);

                Integer num_mensajes = subjectsList.size();
                  if (num_mensajes == 0){

                     }
                   if (num_mensajes > 0){

                           }
                   } catch (JSONException e) {
                        e.printStackTrace();
                     }
               }

        @Override
        public void onFailure(int statusCode, Header[] headers, String res, Throwable t) {
      // called when response HTTP status is "4XX" (eg. 401, 403, 404)
                       }
                 }
          );

也许您可以在那里找到该问题的原因。

如果你需要更多的代码,我可以把它们放在这里,没问题。

标签: androidandroid-recyclerview

解决方案


推荐阅读