2015-07-01 2 views
1

My Recyclerview заполняется курсором .. однако я не обнаружил способ реализации добавлять или удалять элементы из recyclerview до сих порRecyclerView Добавление и удаление пунктов

Вот мой класс адаптер:

class NotesAdapter extends RecyclerView.Adapter<NotesAdapter.ViewHolder> { 


     Cursor curs; 
     Context ctx; 
     ViewHolder vh; 
     CardView v; 


     public class ViewHolder extends RecyclerView.ViewHolder { 
      public TextView Note_Title, Note_Text; 
      public RelativeLayout RLNote; 

      public ViewHolder(CardView v) { 
       super(v); 
       Note_Title = (TextView) v.findViewById(R.id.tvTitle); 
       Note_Text = (TextView) v.findViewById(R.id.tvText); 
       RLNote = (RelativeLayout) v.findViewById(R.id.note_background); 
      } 
     } 

     public NotesAdapter(Context context, Cursor c) { 
      ctx = context; 
      curs = c; 
     } 

     @Override 
     public NotesAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, 
       int viewType) { 
      v = (CardView) LayoutInflater.from(parent.getContext()).inflate(
        R.layout.notes_fragment_custom, parent, false); 
      vh = new ViewHolder(v); 
      return vh; 
     } 

     @Override 
     public void onBindViewHolder(final ViewHolder holder, final int position) { 
      // TODO Auto-generated method stub 
      curs.moveToPosition(position); 

      holder.Note_Title.setText(curs.getString(curs 
        .getColumnIndex(MiroDatabase.KEY_NOTES_TITLE))); 

       holder.Note_Text.setText(curs.getString(curs 
         .getColumnIndex(MiroDatabase.KEY_NOTES_TEXT))); 


     } 

     public int getItem(int position) { 
      return position; 
     } 

     @Override 
     public long getItemId(int position) { 
      // TODO Auto-generated method stub 
      return super.getItemId(position); 
     } 

     @Override 
     public int getItemCount() { 
      return curs.getCount(); 
     } 
    } 

} 

Так же, как и любой recyclerview класс адаптера, но в сочетании с курсором ...

я не нашел на Google никаких результатов для этих

Надеется, что вы помочь! Спасибо :)

+1

RecyclerView не сделал для работы с курсорами на самом деле. С помощью курсора вы должны запрашивать данные после изменения данных. Вам нужно будет превратить это curso в arraylist, когда вы запрашиваете, затем отслеживайте, что изменилось, когда вы запрашиваете – tyczj

ответ

1

В вашей деятельности вы можете:

TheDatabase MD; 
NotesAdapter AA; 
MD.close(); 
MD.open(); 
AA.ChangeCursor(c); 
AA.notifyDataSetChanged(); 

А в классе NotesAdapter, добавить функцию:

public void ChangeCursor(Cursor c) { 
    // TODO Auto-generated method stub 
    curs = c; 
} 
Смежные вопросы