Partage
  • Partager sur Facebook
  • Partager sur Twitter

Chargement fichier Json(asset) dans RecyclerView

    28 novembre 2018 à 18:53:17

    Bonsoir à tous, j'ai un problème avec une app que je suis en train de développer j'ai longtemps chercher jusque là je ne trouve toujours pas de solution aidez moi svp!!! J'explique mon problème, j'ai deux fichier Json l'un est comme ce-ci : 
    {
      "ussd_code":[
        {"cmd_id": 1,"cmd_name": "Solde de crédit","cmd_instruction": "*100#","cmd_commentaire": null,"opetor_id": 2,"mnu_id": 12},
        {"cmd_id": 2,"cmd_name": "Solde de crédit","cmd_instruction": "*565#","cmd_commentaire": null,"opetor_id": 1,"mnu_id": 12},
        {"cmd_id": 3,"cmd_name": "Solde de crédit","cmd_instruction": "*124#","cmd_commentaire": null,"opetor_id": 3,"mnu_id": 12}]}
    et l'autre 
    {
      "operator":[
        {"opetor_id": 1,"opetor_name": "Airtel","ctry_id": "CD"},
        {"opetor_id": 2,"opetor_name": "Vodacom","ctry_id": "CD"},
        {"opetor_id": 3,"opetor_name": "Orange","ctry_id": "CD"},
        {"opetor_id": 4,"opetor_name": "Tigo","ctry_id": "CD"},
        {"opetor_id": 5,"opetor_name": "MTN","ctry_id": "RW"}]}

    Mon problème se présente comme suit :

    je vais afficher sur un RecyclerView les données suivants : cmd_name, cmd_instruction par rapport au champ opetor_id qui se trouve entre les deux fichiers j'arrive à bien le faire mais ça affiche toutes ces données là dans chaque recyclerView sans tenir compte du champ opetor_id. Mon code qui le fait est comme ce-ci : 

    for (int z = 0; z < jArrayMenu.length(); z++) {
                                    JSONObject MnuDetail = jArrayMenu.getJSONObject(z);
                                    Integer operatorIdMenu = MnuDetail.getInt("opetor_id");
                                    cmd_operator_test.add(MnuDetail.getInt("opetor_id"));
                                    if (OperaID.equals(operatorIdMenu)){
                                        cmd_id.add(MnuDetail.getString("cmd_id"));
                                        cmd_name.add(MnuDetail.getString("cmd_name"));
                                        cmd_instruction.add(MnuDetail.getString("cmd_instruction"));
                                        cmd_commentaire.add(MnuDetail.getString("cmd_commentaire"));
                                        CustomAdapter customAdapter = new CustomAdapter(MainActivity.this, cmd_id, cmd_name, cmd_instruction, cmd_commentaire);
                                        rv.setAdapter(customAdapter); // set the Adapter to RecyclerView
                                    }
                                }

    Mon Adapter est là :

    public class CustomAdapter extends RecyclerView.Adapter<CustomAdapter.MyViewHolder> {
    
            ArrayList<String> cmd_id = new ArrayList<>();
            ArrayList<String> cmd_name = new ArrayList<>();
            ArrayList<String> cmd_instruction = new ArrayList<>();
            ArrayList<String> cmd_commentaire = new ArrayList<>();
            ArrayList<String> cmd_operator = new ArrayList<>();
    
    
            Context context;
    
            public CustomAdapter(Context context, ArrayList<String> cmd_id, ArrayList<String> cmd_name, ArrayList<String> cmd_instruction, ArrayList<String> cmd_commentaire) {
                this.context = context;
                this.cmd_id = cmd_id;
                this.cmd_name = cmd_name;
                this.cmd_instruction = cmd_instruction;
                this.cmd_commentaire = cmd_commentaire;
            }
    
            @Override
            public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
                // inflate the item Layout
                View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.rowlayout, parent, false);
                MyViewHolder vh = new MyViewHolder(v); // pass the view to View Holder
                return vh;
            }
    
            @Override
            public void onBindViewHolder(MyViewHolder holder, final int position) {
                // set the data in items
                holder.name.setText(cmd_id.get(position));
                holder.email.setText(cmd_name.get(position));
                holder.mobileNo.setText(cmd_instruction.get(position));
                // implement setOnClickListener event on item view.
                holder.itemView.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View view) {
                        // display a toast with person name on item click
                        Toast.makeText(context, cmd_name.get(position), Toast.LENGTH_SHORT).show();
                    }
                });
    
            }
    
    
            @Override
            public int getItemCount() {
                return cmd_id.size();
            }
    
            public class MyViewHolder extends RecyclerView.ViewHolder {
                TextView name, email, mobileNo;// init the item view's
    
                public MyViewHolder(View itemView) {
                    super(itemView);
    
                    // get the reference of item view's
                    name = (TextView) itemView.findViewById(R.id.name);
                    email = (TextView) itemView.findViewById(R.id.email);
                    mobileNo = (TextView) itemView.findViewById(R.id.mobileNo);
    
                }
            }
        }

    Aidez moi svp car je ne sait plus quoi faire.
    Merci d'avance.


    • Partager sur Facebook
    • Partager sur Twitter

    Chargement fichier Json(asset) dans RecyclerView

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown