我有Quote List类QuoteListFragment。我从服务器加载适配器中的数据,如此
private ArrayList<Quote> quotes;
quotes = response.body();
NewQuoteAdapter adapter = new NewQuoteAdapter(getContext(), response.body());
mQuoteList.setAdapter(adapter);
和RecyclerView Adapter称为NewQuoteAdapter
我正在使用QuoteViewFragment
详细显示项目。我在这个片段中实现了一个名为“delete”的按钮,我希望让用户有机会从片段中删除该引用,这样当用户返回列表时,它就会从列表中消失。
我不知道如何实现这一目标。如果有人能为我提供解决方案,请告诉我。感谢
答案 0 :(得分:2)
你有一个列表,适配器和recyclerview
ArrayList<String> myQuoteList = new ArrayList<String>();
MyCustomAdapter adapter = new MyCustomAdapter(myQuoteList);
rcvQuotes.setAdapter(adapter);
然后在你的删除中你可以做到
private void deleteAtIndex(int index){
myQuoteList.remove(index);
adapter.notifyDataSetChanged();
}
//创建一个界面。
public interface fragmentCallback{
boolean onQuoteDeleted(Quote deleteQuote);
}
让您的活动实现界面:
myActivity implements fragmentCallback{
public boolean onQuoteDeleted(Quote deletedQuote){
if(myQuotelist.contains(deleteQuote){
myQuoteList.remove(deleteQuote);
adapter.notifyDataSetChanged();
}
}
}
然后在片段简单
myFragment.setQuote(selectedQuote);
片段里面只做:
@Override
public void onAttach(Context context) {
super.onAttach(context);
try{
mFragmentCallback = (IFragmentCallback) context;
}catch (Exception ex){
A35Log.e(TAG, "Parent Context does not implement fragmentCallback");
}
}
public void setQuote(Quote showQuote){
mSelectedQuote = showQuote;
}
btnDelete_onClick(){
if(mFragmentCallback != null){
mFragmentCallback.onDeleteQuote(mSelectedQuote);
}
}
您可以通过选定的行索引,最后一个索引或第一个索引来处理它,也可以将长触摸侦听器或垃圾桶添加到行项目中。你如何获得索引取决于你。
就是这样,就是它的全部内容。
答案 1 :(得分:0)
Arraylist.remove(index)
recycleradapter.notifydatasetchanged()
答案 2 :(得分:0)
获取点击项目的index
例如index = 4
引用列表,例如quotesList。
quotesList.remove(index);
adapter.notifyDataSetChanged();