2015-02-17 11 views
8

यह कैसे मेरे recyclerView (आंशिक रूप से) कोडित है है में आधारित आइटम:को हटाने कर्सर 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); 
    } 

समस्या अपने डेटा एक कर्सर वस्तु है, और कर्सर उदाहरण के लिए .remove (स्थिति) ArrayList की तरह नहीं है। तो मैं वही चीज़ कैसे प्राप्त करूं, जो कुछ निश्चित स्थिति से कुछ डेटा को हटाना है?

नोट: मैं केवल विशिष्ट (चयनित) स्थिति से डेटा को हटाना चाहता हूं, न कि डेटाबेस के अंदर डेटा भी।

+0

क्या आपको कोई समाधान मिला? –

+0

मुझे भी एक ही समस्या का सामना करना पड़ रहा है। –

उत्तर

0

आप कर्सर से आइटम को हटा नहीं सकते हैं, इसे यहां देखें।

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

इसके बजाय आप सूची https://www.javatpoint.com/java-list या ArrayList https://www.javatpoint.com/java-arraylist

में अपने कर्सर आइटम बदलने और अपने कार्य को प्राप्त कर सकते हैं।