将JSonArray转换为Adaper

时间:2018-10-14 17:24:25

标签: java android json adapter

我正在过滤数据库中的值,因此我将过滤后的数据存储到JsonArray中,并且希望在屏幕上显示此数据,因此需要将其传递给适配器。这是我的过滤代码:

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

          if(metas[i].getId() != null && metas[i].getId_musico().equals(myId)){
             filteredArr.put(metas[i]);

             }
       }

结果是这样的:

2018-10-14 18:52:36.813 1117-1117/app.bsmo.ismael034.com.bsmo D/miidfx: app.bsmo.ismael034.com.bsmo.Asistencia.Meta_Asistencia@7da4546     
2018-10-14 18:52:36.813 1117-1117/app.bsmo.ismael034.com.bsmo D/miidfx: app.bsmo.ismael034.com.bsmo.Asistencia.Meta_Asistencia@32f0307

这是我的适配器的完整代码:

  JSONArray mensaje = response.getJSONArray("metas");
                Meta_Asistencia[] metas = gson.fromJson(mensaje.toString(), Meta_Asistencia[].class);

                Log.d("miidfx2", String.valueOf(metas));


                JSONArray filteredArr = response.getJSONArray("metas");

                    // APLICACIÓN DE ORDEN:
                    // Ordenar el array de metas por idMeta de forma descendente:
                    Arrays.sort(metas, new Comparator<Meta_Asistencia>() {

                        int result;
                        DateFormat f = new SimpleDateFormat("yyyy-mm-dd", Locale.ENGLISH);

                        @Override
                        public int compare(Meta_Asistencia objeto1, Meta_Asistencia objeto2) {
                            Log.d("DIATX", String.valueOf(5));

                                // Comparamos por fechaLim de forma descendente:
                                try {
                                        Log.d("DIATX", String.valueOf(6));
                                        result = f.parse(objeto2.dia).compareTo(f.parse(objeto1.dia));
                                        Log.d("DIA", objeto1.dia);
                                        Log.d("DIA1", objeto2.dia);
                                        Log.d("ordenar", String.valueOf(result));

                                } catch (ParseException e) {
                                    e.printStackTrace();
                                    Log.d("DIATX", String.valueOf(7));

                                }
                                return result;
                        }

                    });


                int i;
      Log.d("miidf", myId);
           for( i=0;i<metas.length;i++){
                 Log.d("miidf1", String.valueOf(metas[i].getId_musico()));
           if(metas[i].getId() != null && metas[i].getId_musico().equals(myId)){
                        filteredArr.put(metas[i]);

                 Log.d("miidfx", String.valueOf(metas[i]));
                 }

           }

       adapter = new MetaAdapter_Asistencia(Arrays.asList(metas[Integer.parseInt(myId)]), getActivity());
                // Setear adaptador a la lista
                    lista.setAdapter(adapter);

所以我需要将firteredArr传递给我的适配器并显示此数据。

0 个答案:

没有答案