Все horoszantal Nested Recyclerviews в вертикальной программе повторного просмотра показывают один и тот же список

Я постараюсь объяснить свою проблему настолько четко, насколько смогу. Я пытаюсь реализовать представление вложенного рециркулятора, например, Google Play Store. Таким образом, у меня есть вертикальное представление Recycler, и оно состоит из горизонтального просмотра Recycler в детстве. Теперь я получаю данные от JSON, как показано ниже

{"-L1vUj7wCeLGW7Cg2-Id":{"message":"http://xxxx/xxxx.json\n", "type":0},
"-L1vgsZgayNyCZXfbeh7":{"message":"http://xxxx/xxxx.json\n","type":0},
"-L1vgwTKi8GeTSMm326s":{"message":"http://xxxx.json\n","type":0}}

поэтому для каждого ключа "сообщения" будет горизонтальное представление о переработчике, и каждый json отличается от других. Но то, что я получаю, - это то, что каждое горизонтальное представление о переработчике имеет все ссылки на данные JSON. Например, утилита 1st horz должна содержать только те данные, которые находятся в первом ключе сообщения, но она также показывает данные, которые находятся в других ключах сообщения. Ниже мой код, кто-то может сказать мне, где я делаю неправильно?

filterlink - это значение ключа сообщения.

     private void attachMessagesToRecyclerView(final Query messagesReference) {
        mAdapter = new FirebaseRecyclerAdapter<Message, MessageItemHolder>(Message.class,
                R.layout.test123, MessageItemHolder.class, messagesReference) {
            @Override
            public MessageItemHolder onCreateViewHolder(ViewGroup parent, int viewType) {
                Test123Binding adapterItemMessageBinding = DataBindingUtil.inflate(LayoutInflater
                        .from(parent.getContext()), viewType, parent, false);
                return new MessageItemHolder(adapterItemMessageBinding);
            }

            @Override
            protected void populateViewHolder(final MessageItemHolder viewHolder, final Message message, int position) {
                int index = mUsersEmails.indexOf(message.getEmail());
                if (index != -1) {

                    viewHolder.bindMessage(mUsers.get(index), message, MessagesFragment.this);

                }



                String http = message.getMessage();


                if (http.contains("google") && message.getType() == 0){


                    viewHolder.mAdapterItemMessageBinding.tvItemMessage1.setVisibility(View.GONE);
                    filterLink = message.getMessage();

                  //  ListOfdataAdapter.clear();
                    JSON_HTTP_CALL(filterLink, viewHolder);
                    }

            }





        };


        mFragmentMessagesBinding.rvMessage.setAdapter(mAdapter);
        mFragmentMessagesBinding.rvMessage.getAdapter().registerAdapterDataObserver(
                new RecyclerView.AdapterDataObserver() {
                    @Override public void onItemRangeInserted(int position, int itemCount) {
                        super.onItemRangeInserted(position, itemCount);
                        mFragmentMessagesBinding.rvMessage.scrollToPosition(position);
                    }
                });
    }



    public void shownestedRecyclerView(MessageItemHolder viewHolder){
        viewHolder.mAdapterItemMessageBinding.nestedRecyclerview.setVisibility(View.VISIBLE);
        final WrapContentLinearLayoutManager linearLayoutManager = new WrapContentLinearLayoutManager(getActivity());
        linearLayoutManager.setOrientation(WrapContentLinearLayoutManager.HORIZONTAL);
        viewHolder.mAdapterItemMessageBinding.nestedRecyclerview.setLayoutManager(linearLayoutManager);
        viewHolder.mAdapterItemMessageBinding.nestedRecyclerview.setHasFixedSize(true);
        //mFragmentMessagesBinding.recyclerview1.addItemDecoration(new PaddingItemDecoration(size));
        viewHolder.mAdapterItemMessageBinding.nestedRecyclerview.setItemAnimator(new DefaultItemAnimator());
        DialogRecyclerViewAdapter rvAdapter = new DialogRecyclerViewAdapter(ListOfdataAdapter, getActivity());
        viewHolder.mAdapterItemMessageBinding.nestedRecyclerview.setAdapter(rvAdapter);

        rvAdapter.notifyDataSetChanged();

    }

 public void JSON_HTTP_CALL(final String url, final MessageItemHolder viewHolder){

        RequestOfJSonArray = new JsonArrayRequest(url,

                new Response.Listener<JSONArray>() {
                    @Override
                    public void onResponse(JSONArray response) {
                        ParsingLogs(encodedMail, dateandTime, url, "Success");

                        ParseJSonResponse(response, viewHolder);
                    }
                },
                new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {


                        ParsingLogs(encodedMail, dateandTime, url, String.valueOf(error));



                    }
                });

        requestQueue = Volley.newRequestQueue(getActivity());

        requestQueue.add(RequestOfJSonArray);
    }

    public void ParseJSonResponse(JSONArray array, MessageItemHolder viewHolder){


        for(int i = 0; i<array.length(); i++) {

            UploadImage GetDataAdapter2 = new UploadImage();

            JSONObject json = null;
            try {

                json = array.getJSONObject(i);


                GetDataAdapter2.setBrand_name(json.getString(Image_Name_JSON));

                // Adding image title name in array to display on RecyclerView click event.
                ImageTitleNameArrayListForClick.add(json.getString(Image_Name_JSON));



            } catch (JSONException e) {

                e.printStackTrace();
            }
            ListOfdataAdapter.add(GetDataAdapter2);

            shownestedRecyclerView(viewHolder);
         //   showFragment();


        }
    }

0 ответов

Другие вопросы по тегам