RecyclerView no establece adaptador

Koushik Bhargava:

Tengo tres vistas recicladora de un fragmento. He puesto adaptadores para dos de ellos. Sin embargo, un punto de vista reciclador infla los puntos de vista de la tarjeta, pero el otro no lo hace.

He depurado el código y el adaptador de la vista reciclador que no muestra no está recibiendo llamadas.

Este es mi método onViewCreated () en el fragmento

public void onViewCreated(View view, @NonNull Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);

        recyclerViewVendors = view.findViewById(R.id.rcyview_vendors);
        recyclerViewEvents = view.findViewById(R.id.rcyview_home_events);
        String json;
        try{

            InputStream is = getActivity().getAssets().open("vendorServices.json");
            int size = is.available();
            byte[] buffer = new byte[size];
            if(is.read(buffer) == -1){
                throw new EOFException();
            }
            is.close();
            json = new String(buffer, StandardCharsets.UTF_8);

            JSONObject object = new JSONObject(json);
            JSONArray j_Array = object.getJSONArray("vendorServices");

            for(int i=0;i<j_Array.length();i++){
                JSONObject jo_inside = j_Array.getJSONObject(i);
                myDatasetVendors.add(new VendorService(
                        jo_inside.getString("name"),
                        jo_inside.getString("img")
                ));
            }


            is = getActivity().getAssets().open("activities.json");
            size = is.available();
            buffer = new byte[size];
            if (is.read(buffer) == -1) {
                throw new EOFException();
            }

            is.close();
            json = new String(buffer, StandardCharsets.UTF_8);

            JSONObject obj = new JSONObject(json);
            JSONArray m_jArray = obj.getJSONArray("Activities");

            for (int i = 0; i < m_jArray.length(); i++) {
                JSONObject jo_inside = m_jArray.getJSONObject(i);
                myDatasetEvents.add(jo_inside.getString("title"));
            }

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



        layoutManagerVendors = new LinearLayoutManager(this.getContext(), LinearLayoutManager.HORIZONTAL, false);
        recyclerViewVendors.setLayoutManager(layoutManagerVendors);

        mAdapterVendors = new AdapterVendorServices(myDatasetVendors, this.getContext());
        recyclerViewVendors.setAdapter(mAdapterVendors);

        layoutManagerEvents = new LinearLayoutManager(this.getContext(), LinearLayoutManager.HORIZONTAL, false);
        recyclerViewEvents.setLayoutManager(layoutManagerEvents);

        mAdapterEvents = new AdapterHomeEvents(myDatasetEvents, this.getContext());
        recyclerViewEvents.setAdapter(mAdapterEvents);
    }


Esta es mi adaptador que no se consiga llamar

public class AdapterHomeEvents extends RecyclerView.Adapter<AdapterHomeEvents.MyViewHolder> {
    ArrayList<String> mDataset;
    Context context;

    public AdapterHomeEvents(ArrayList<String> mDataset, Context context) {
        this.mDataset = mDataset;
        this.context = context;
    }

    @NonNull
    @Override
    public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View v = LayoutInflater.from(parent.getContext())
                .inflate(R.layout.card_view_home_events, parent, false);
        MyViewHolder vh = new MyViewHolder(v);
        return vh;
    }

    @Override
    public void onBindViewHolder(@NonNull MyViewHolder holder, int position) {
        holder.textView.setText(mDataset.get(position));
    }

    @Override
    public int getItemCount() {
        return mDataset.size();
    }

    static class MyViewHolder extends RecyclerView.ViewHolder {
        TextView textView;

        MyViewHolder(View itemView) {
            super(itemView);
            textView = itemView.findViewById(R.id.txt_crdViewHome_events);
        }
    }
}

Espero que pueblan mis dos vistas de reciclaje con vistas de la tarjeta pero pueblan sólo una vista reciclador pero no llena la otra.

Sandeep Malik:

se le olvidó el tamaño del conjunto de su adaptador: -

@Override
    public int getItemCount() {
        return mDataset.size();
    }

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=226889&siteId=1
Recomendado
Clasificación