我有一个使用RecyclerView和OnClickListener的列表来处理项目点击。
我使用了相同的解决方案: Why doesn't RecyclerView have onItemClickListener()? And how RecyclerView is different from Listview?
public static class ViewHolder extends RecyclerView.ViewHolder implements OnClickListener {
public TextView txtViewTitle;
public ImageView imgViewIcon;
public ViewHolder(View itemLayoutView) {
super(itemLayoutView);
itemLayoutView.setOnClickListener(this);
txtViewTitle = (TextView) itemLayoutView.findViewById(R.id.item_title);
imgViewIcon = (ImageView) itemLayoutView.findViewById(R.id.item_icon);
}
@Override
public void onClick(View v) {
// start a new fragment
}
}
问题在于,如果我快速选择两个项目,它将执行onClick()两次,在这种情况下,启动两个新片段。
我做错了吗?避免这种情况的最佳方法是什么?对于所有情况都是一个简单的布尔标志吗?
更新: 这是一个“包选择屏幕”,您可以选择要播放的包。然后它会显示一个包含所选包中所有谜题的新片段。
谢谢!
答案 0 :(得分:1)
你对onClick
做得对。试试这个:
@Override
public void onClick(View v) {
if(fragment is playing) {
return;
}
// start a new fragment
}