【问题标题】:removing cursor based items in RecyclerView在 RecyclerView 中删除基于光标的项目
【发布时间】:2015-02-17 14:41:39
【问题描述】:

这就是我的 recyclerView 的编码方式(部分):

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

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

这是我的 dbc.ListExpenses 的编写方式

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;
    }

AdapterExpensesList 是这样写的

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

 Cursor myDataCursor;

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

    }

正如您可能在上面看到的,我的 RecyclerView 中的项目是直接从光标中获取的。我现在的问题是,我想实现该功能以删除 RecyclerView 中的一些数据。从我在网上找到的示例中,他们通常是这样做的:

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

问题是我的数据是一个游标对象,并且游标没有像 ArrayList 这样的 .remove(position) 。那么如何实现相同的目的,即从某个位置删除某些数据呢?

注意:我只想从特定(选定)位置删除数据,而不是数据库本身的数据。

【问题讨论】:

  • 您找到解决方案了吗?
  • 我也面临同样的问题。

标签: android android-recyclerview


【解决方案1】:

你不能从光标中删除项目在这里检查它。

https://stackoverflow.com/a/6724929/5492047

相反,您可以转换列表https://www.javatpoint.com/java-list 或数组列表https://www.javatpoint.com/java-arraylist 中的光标项

并完成你的任务。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-06
    • 2018-11-12
    相关资源
    最近更新 更多