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.
Czy znalazłeś rozwiązanie? –
Mam również ten sam problem. –