два списка одного "recylerView" - PullRequest
0 голосов
/ 29 марта 2020

У меня есть «recylerView» со всеми курсами, которые у меня есть в mysql БД, пользователь выбирает один и может сохранить в другой таблице mysql под названием «Избранное» (у меня уже есть запрос, и он работает нормально), затем У меня есть кнопка, с которой я хочу открыть то же самое recylerview, но только с избранными, которые есть у пользователя, я понятия не имею, как это сделать, если это может помочь мне, но медленно это мой первый проект;)

public class AdaptadorCursos extends RecyclerView.Adapter<AdaptadorCursos.CursosViewHolder> {

    private
    Context context;
    List<Cursos> listaCursos;





    @SuppressLint("ResourceType")
    public AdaptadorCursos(Context context, List<Cursos> listaCursos) {
        this.context = context;
        this.listaCursos = listaCursos;



    }



    @NonNull
    @Override
    public AdaptadorCursos.CursosViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {


        View v = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.item_rv_cursos, viewGroup, false);
        return new CursosViewHolder(v);

    }

    @Override
    public void onBindViewHolder(@NonNull CursosViewHolder CursosViewHolder, int i) {


        Glide.with(context).
                load(listaCursos.get(i).getImagen()).
                error(R.drawable.noimagen).
                into(CursosViewHolder.imagen);


        CursosViewHolder.Idcurso.setText(listaCursos.get(i).getidcurso());
        CursosViewHolder.Titulo.setText(listaCursos.get(i).getTitulo());
        CursosViewHolder.Descripcion.setText(listaCursos.get(i).getDescripcion());
        CursosViewHolder.Categoria.setText(listaCursos.get(i).getCategoria());


    }

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

    }




    public class CursosViewHolder extends RecyclerView.ViewHolder {
        TextView Idcurso,Titulo, Descripcion, Categoria;
        ImageView imagen;

        public CursosViewHolder(@NonNull View itemView) {
            super(itemView);

          itemView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {

                    Intent r= new Intent(v.getContext(),Detalle_Curso.class);
                    r.putExtra("idcurso",listaCursos.get(getAdapterPosition()).getidcurso());
                   r.putExtra("titulo",listaCursos.get(getAdapterPosition()).getTitulo());
                   r.putExtra("descripcion",listaCursos.get(getAdapterPosition()).getDescripcion());
                   r.putExtra("categoria",listaCursos.get(getAdapterPosition()).getCategoria());
                   r.putExtra("imagen",listaCursos.get(getAdapterPosition()).getImagen());
                    v.getContext().startActivity(r);


                }
            });

            Idcurso = itemView.findViewById(R.id.tvIdcurso);
            Titulo = itemView.findViewById(R.id.tituloDetalle);
            Descripcion = itemView.findViewById(R.id.tvDescripcion);
            Categoria = itemView.findViewById(R.id.tvCategoria);
            imagen = itemView.findViewById(R.id.tvImagen);
        }

    }
    public void filtrar(ArrayList<Cursos> filtroCursoss) {
        this.listaCursos = filtroCursoss;
        notifyDataSetChanged();
    }

public class PrincipalActivity extends AppCompatActivity {



    EditText etBuscador;
    RecyclerView rvLista;
    AdaptadorCursos adaptador;
    List<Cursos> listaCurso;



    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_principal);



        etBuscador = findViewById(R.id.etBuscador);

        FloatingActionButton botonF = (FloatingActionButton) findViewById(R.id.fabCerrar);


        botonF.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                AlertDialog.Builder builder= new AlertDialog.Builder(PrincipalActivity.this);
                builder.setIcon(R.mipmap.ic_launcher).
                        setTitle("Cerrar Sesion").setMessage("¿Esta seguro que quiere cerrar su sesion?").
                        setPositiveButton("Aceptar", new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog, int which) {
                                SharedPreferences preferences=getSharedPreferences("preferenciasLogin", Context.MODE_PRIVATE);
                                preferences.edit().clear().commit();

                                Intent intent=new Intent(getApplicationContext(),MainActivity.class);
                                startActivity(intent);
                                finish();
                            }
                        }).setNegativeButton("Cancelar", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        dialog.dismiss();
                    }

                });

                AlertDialog alertDialog=builder.create();
                alertDialog.show();

            }
        });


        etBuscador.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) { }

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) { }

            @Override
            public void afterTextChanged(Editable s) {
                filtrar(s.toString());
            }
        });

        rvLista = findViewById(R.id.rvLista);
        rvLista.setLayoutManager(new GridLayoutManager(this, 1));

        listaCurso= new ArrayList<>();

        obtenerCursos();

        adaptador = new AdaptadorCursos(PrincipalActivity.this, listaCurso);
        rvLista.setAdapter(adaptador);
    }

    public void obtenerCursos() {
        RequestQueue requestQueue = Volley.newRequestQueue(getApplicationContext());

        StringRequest stringRequest = new StringRequest(Request.Method.POST, getResources().getString(R.string.URL_cursos),
                new Response.Listener<String>() {
                    @Override
                    public void onResponse(String response) {
                        try {
                            JSONObject jsonObject = new JSONObject(response);
                            JSONArray jsonArray = jsonObject.getJSONArray("Curso");

                            for (int i = 0; i < jsonArray.length(); i++) {
                                JSONObject jsonObject1 = jsonArray.getJSONObject(i);
                                boolean add = listaCurso.add(
                                        new Cursos(
                                                jsonObject1.getString("id_curso"),
                                                jsonObject1.getString("titulo"),
                                                jsonObject1.getString("descripcion"),
                                                jsonObject1.getString("categoria"),
                                                jsonObject1.getString("imagen")


                                        )
                                );
                            }

                            adaptador = new AdaptadorCursos(PrincipalActivity.this, listaCurso);
                            rvLista.setAdapter(adaptador);

                        } catch (JSONException e) {
                            e.printStackTrace();
                        }
                    }
                }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                error.printStackTrace();
            }
        }
        );

        requestQueue.add(stringRequest);
    }

    public void filtrar(String texto) {
        ArrayList<Cursos> filtrarLista = new ArrayList<>();

        for(Cursos cursos : listaCurso) {
            if(cursos.getTitulo().toLowerCase().contains(texto.toLowerCase())) {
                filtrarLista.add(cursos);
            }
        }

        adaptador.filtrar(filtrarLista);
    }

public Cursos(String idcurso,String titulo, String descripcion, String categoria,String imagen) {
    this.idcurso=idcurso;
    this.titulo = titulo;
    this.descripcion = descripcion;
    this.categoria = categoria;
    this.imagen = imagen;

}


public String getidcurso() {
    return idcurso;
}

public void setidcurso(String idcurso) { this.idcurso = idcurso; }

public String getTitulo() {
    return titulo;
}

public void setTitulo(String titulo) {
    this.titulo = titulo;
}

public String getDescripcion() {
    return descripcion;
}

public void setDescripcion(String descripcion) {
    this.descripcion = descripcion;
}

public String getCategoria() {
    return categoria;
}

public void setCategoria(String categoria) {
    this.categoria = categoria;
}

public String getImagen() {
    return imagen;
}

public void setImagen(String imagen) {
    this.imagen = imagen;
}


}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...