public class TripsAdapter extends RecyclerView.Adapter<TripsAdapter.VerticalItemHolder> {
private List<Trip> mTrips;
private Context mContext;
private RecyclerView mRecyclerView;
[...]
//Let adapter know his RecyclerView. Attaching ItemTouchHelper
@Override
public void onAttachedToRecyclerView(RecyclerView recyclerView) {
ItemTouchHelper itemTouchHelper = new ItemTouchHelper(new TripItemTouchHelperCallback());
itemTouchHelper.attachToRecyclerView(recyclerView);
mRecyclerView = recyclerView;
}
[...]
public class TripItemTouchHelperCallback extends ItemTouchHelper.SimpleCallback {
public TripItemTouchHelperCallback (){
super(ItemTouchHelper.UP | ItemTouchHelper.DOWN, ItemTouchHelper.RIGHT);
}
@Override
public boolean onMove(RecyclerView recyclerView,
RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder target) {
//some "move" implementation
}
@Override
public void onSwiped(RecyclerView.ViewHolder viewHolder, int swipeDir) {
//AND WHAT HERE?
}
}
}
很管用。然而,我也需要执行一些撤消操作或确认。做这件事最好的方法是什么?
第一个问题是如何插入另一个视图代替删除与确认对话框?如果用户选择撤消删除,如何恢复被刷的项目?
我同意@Gabor的观点,最好软删除项目并显示撤消按钮。
然而,我使用Snackbar来显示撤消。对我来说更容易实现。
我将适配器和RecycerView实例传递给ItemTouchHelper回调。我的onSwiped很简单,大部分工作是由适配器完成的。
@Override
public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) {
mAdapter.onItemRemove(viewHolder, mRecyclerView);
}
public void onItemRemove(final RecyclerView.ViewHolder viewHolder, final RecyclerView recyclerView) {
final int adapterPosition = viewHolder.getAdapterPosition();
final Photo mPhoto = photos.get(adapterPosition);
Snackbar snackbar = Snackbar
.make(recyclerView, "PHOTO REMOVED", Snackbar.LENGTH_LONG)
.setAction("UNDO", new View.OnClickListener() {
@Override
public void onClick(View view) {
int mAdapterPosition = viewHolder.getAdapterPosition();
photos.add(mAdapterPosition, mPhoto);
notifyItemInserted(mAdapterPosition);
recyclerView.scrollToPosition(mAdapterPosition);
photosToDelete.remove(mPhoto);
}
});
snackbar.show();
photos.remove(adapterPosition);
notifyItemRemoved(adapterPosition);
photosToDelete.add(mPhoto);
}
Git提供了多种修复你开发过程中的错误的方法. 方法的选择取决于你的情况: 包含有错误的文件是否提交了(commited); 如果你把它已经提交了, 那么你是否把有错误的提交已与其它人共享这也很重要. 修复未提交文件中的错误(重置) 如果你现在的工作目录(work tree)里搞的一团乱麻, 但是你现在还没有把它们提交; 你可以通过下面的命令, 让工作目录回到上次提交时的状态(last commi
Revert 命令可以撤消之前做过的某个提交。 练习 1,先查看一下项目的提交历史: → git log --oneline fb11f83 让 README.md 标题的首字母大写 0fd9dac 让标题微笑 7086650 添加 .gitignore b5773ad 设置相关资源文档标题 23f3c2b 添加相关资源文档 a454700 设置说明文档的标题 39975b3 初始化 “添加 .
我实现了一个Java使用者,它使用来自Kafka主题的消息,然后将这些消息与POST请求一起发送到REST API。 假设一个消息已经被使用,但是Java类未能到达REST API。消息将永远不会被传递,但它将被标记为已消耗。处理这类案件最好的办法是什么?当且仅当来自REST API的响应成功时,我能以某种方式确认消息吗?
我正面临一个问题,我无法删除RecycerView中的一个项目。我试图在互联网上搜索,但无法看到任何解决方案,我遵循这篇文章Android Recycerview添加和删除项目,但我仍然无法删除下面选择的项目是我的适配器和碎片的代码 RecyclerViewAdapter.java
问题内容: 我目前正在使用Oracle Database Express Edition 11g处理一些选项。考虑下面的小代码示例,其中一些用户向其他用户授予某些特权: 用户A是表T的创建者,并执行以下操作。 现在执行。因为没有指定约束,则操作要么取消,否则将有一个废弃的特权,或同时删除的权限和。 现在我的问题是:该语句是否实际上已取消或同时删除和特权?或者换句话说,就是执行该revoke语句,无
问题内容: 我正在实现撤消/重做功能,这需要我使用记忆模式。 局部程序的流程:“ …该程序然后使用Memento模式存储先前的Vector,然后将新创建的对象添加到Vector。此后,用户可以选择show命令来显示Vector内部的内容。 ,他还可以输入undo命令来还原,还原可以重复进行,直到还原到原始状态为止。” 从我的研究中,我知道将会有一个创始者,纪念品和看守。 这是我的看守程序 不幸的是