2015-02-17 11 views
8

To jest jak moja recyclerView jest kodowana (częściowo):usuwanie elementów opartych kursora w RecyclerView

expensesListCursor = dbc.listExpenses(selectedDate); 
mLayoutManager = new LinearLayoutManager(getActivity()); 
      rvExpenses.setLayoutManager(mLayoutManager); 
      rvExpenses.setItemAnimator(new DefaultItemAnimator()); 

      mAdapter = new AdapterExpensesList(expensesListCursor,getActivity()); 
      rvExpenses.setAdapter(mAdapter); 

oto jak moi dbc.ListExpenses napisano

public Cursor listExpenses(String date){ 
     Cursor cursor; 
     cursor = database.query(MySQLiteHelper.TABLE_EXPENSES, new String[] {"rowid as _id", "description, cost"}, "date='" + date + "'", null, null, null, "_id asc"); 

     if (cursor != null) { 
      cursor.moveToFirst(); 
     } 
     return cursor; 
    } 

a oto jak AdapterExpensesList napisano

public class AdapterExpensesList extends RecyclerView.Adapter<AdapterExpensesList.ViewHolder> { 

Cursor myDataCursor; 

public AdapterExpensesList(Cursor expensesListCursor, Context context){ 
      myDataCursor = expensesListCursor; 

    } 

Jak można prawdopodobnie zobaczyć powyżej, przedmioty w moim RecyclerView są pobierane bezpośrednio z kursora. Mój problem jest teraz, chciałbym zaimplementować funkcję, aby usunąć niektóre dane z RecyclerView. Z przykładów znalazłem w internecie, zwykle oto jak to zrobili:

private ArrayList<String> mDataset; 
public void remove(String item) { 
    int position = mDataset.indexOf(item); 
    mDataset.remove(position); 
    notifyItemRemoved(position); 
    } 

Problemem jest moje dane jest obiektem kursora i kursor nie ma .Wykręcić (pozycja), jak na przykład ArrayList. Jak więc osiągnąć to samo, to znaczy usunąć pewne dane z określonej pozycji?

Uwaga: chcę tylko usunąć dane z określonej (wybranej) pozycji, a nie dane wewnątrz samej bazy danych.

+0

Czy znalazłeś rozwiązanie? –

+0

Mam również ten sam problem. –

Odpowiedz

Powiązane problemy