Autore Topic: Aggiornare recycleview  (Letto 456 volte)

Offline xixietto

Aggiornare recycleview
« il: 29 Maggio 2017, 16:55:15 CEST »
0
Salve carico dei dati in un recycleview. Il problema sorge quando devo aggiornare l adapter. Mi risulta questo.
I valori vengono ripetuti. Come posso risolvere?

Inviato dal mio SM-G925F utilizzando Tapatalk


Offline NetGEL

  • Utente normale
  • ***
  • Post: 215
  • Respect: +9
    • Google+
    • Mostra profilo
  • Play Store ID:
    NetGEL
Re:Aggiornare recycleview
« Risposta #1 il: 29 Maggio 2017, 17:02:08 CEST »
0
Ciao, quando aggiorni l'adapter aggiungi nuovamente tutti i dati?
Perchè se è così il problema è quello.

Se ogni volta riaggiungi tutti i dati, dovresti prima pulire la lista prima di aggiungere tutti i dati

Offline xixietto

Re:Aggiornare recycleview
« Risposta #2 il: 29 Maggio 2017, 17:04:14 CEST »
0
Ho provato sinceramente a pulire la lista. Ma dopo aver pulita non me la fa più vedere.
Cmq ciao Net!!!! ;)

Inviato dal mio SM-G925F utilizzando Tapatalk


Offline NetGEL

  • Utente normale
  • ***
  • Post: 215
  • Respect: +9
    • Google+
    • Mostra profilo
  • Play Store ID:
    NetGEL
Re:Aggiornare recycleview
« Risposta #3 il: 29 Maggio 2017, 17:12:07 CEST »
0
Dopo che aggiungi i dati fai un

notifyDataSetChanged()?

Offline xixietto

Re:Aggiornare recycleview
« Risposta #4 il: 29 Maggio 2017, 17:15:07 CEST »
0
Provato.
 Sia in activity che in adapter. Non ne vuole sapere

Inviato dal mio SM-G925F utilizzando Tapatalk


Offline xixietto

Re:Aggiornare recycleview
« Risposta #5 il: 29 Maggio 2017, 17:24:18 CEST »
0
Potrebbe essere un problema di recycleview ke nn pulire i vecchi item?

Inviato dal mio SM-G925F utilizzando Tapatalk


Offline NetGEL

  • Utente normale
  • ***
  • Post: 215
  • Respect: +9
    • Google+
    • Mostra profilo
  • Play Store ID:
    NetGEL
Re:Aggiornare recycleview
« Risposta #6 il: 29 Maggio 2017, 22:14:58 CEST »
0
Sei sicuro di riempire nel modo corretto l'adapter?

Offline xixietto

Re:Aggiornare recycleview
« Risposta #7 il: 29 Maggio 2017, 23:20:44 CEST »
0
Ti mando il codice?

Inviato dal mio SM-G925F utilizzando Tapatalk



Post unito: [time]29 Maggio 2017, 23:34:13 CEST[/time]
adapter
Codice (Java): [Seleziona]
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

import java.util.ArrayList;
import java.util.List;

public class Adapter_ricetta extends RecyclerView.Adapter<Adapter_ricetta.MyViewHolder> {

private List<Ricettario> moviesList;

public class MyViewHolder extends RecyclerView.ViewHolder {
    public TextView title, genre;

    public MyViewHolder(View view) {
        super(view);
        title = (TextView) view.findViewById(R.id.title);
        genre = (TextView) view.findViewById(R.id.genre);
    }
}


    public Adapter_ricetta(List<Ricettario> moviesList) {
        this.moviesList = moviesList;
    }

    @Override
    public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View itemView = LayoutInflater.from(parent.getContext())
                .inflate(R.layout.row_ricettario, parent, false);

        return new MyViewHolder(itemView);
    }

    @Override
    public void onBindViewHolder(MyViewHolder holder, int position) {
        Ricettario movie = moviesList.get(position);
        holder.title.setText(movie.getTitle());
        holder.genre.setText(movie.getGenre());
    }

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

    public void pulizia () {
        notifyDataSetChanged();

    }




}

main
Codice (Java): [Seleziona]
   private void prepare_list() {
        String id_nome_ricetta = null;

        String[] arg11 = {valore_editText_nome};//id della salsiccia
        if (valore_editText_nome!= null && !valore_editText_nome.isEmpty()) {
            Cursor c10 = db.rawQuery("SELECT * FROM figlio  WHERE nome=?", arg11);
             while (c10.moveToNext()) {
             id_nome_ricetta=c10.getString(0);}

        String[] arg1 = {id_nome_ricetta};//id della salsiccia
            Cursor c3 = db.rawQuery("SELECT * FROM unioneingredienti WHERE idfiglio=?", arg1);//tutti i campi dove id figlio � uguale a quell'id
           if(c3.getCount()==0){}
            else{
                while (c3.moveToNext()) {

                    String[] arg2 = {c3.getString(4)};//id if (c1.getCount() == 0) {
                    Cursor c2 = db.rawQuery("SELECT * FROM ingredienti WHERE _id=?", arg2);//nome ingrediente nella salsiccia
                    while (c2.moveToNext()) {
                         a = new Ricettario(c2.getString(1),c3.getString(1));
                        Log.d("query", (c2.getString(1)) + ":" + (c3.getString(1)));
                        movieList.add(a);
                    }}
               mAdapter.pulizia();
               mAdapter.notifyDataSetChanged();
              recyclerView.setAdapter(mAdapter);
               mAdapter.notifyDataSetChanged();
            }
           // mAdapter.update((ArrayList<Ricettario>) movieList);
           // recyclerView.setAdapter(mAdapter);
           // mAdapter.notifyDataSetChanged();
        }}

Post unito: 30 Maggio 2017, 00:51:42 CEST
RISOLTO
« Ultima modifica: 30 Maggio 2017, 00:51:42 CEST da xixietto, Reason: Merged DoublePost »