如何避免在RecyclerView OnClickListener上进行双重选择?

时间:2015-09-03 11:58:27

标签: android onclicklistener android-recyclerview

我有一个使用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()两次,在这种情况下,启动两个新片段。

我做错了吗?避免这种情况的最佳方法是什么?对于所有情况都是一个简单的布尔标志吗?

更新: 这是一个“包选择屏幕”,您可以选择要播放的包。然后它会显示一个包含所选包中所有谜题的新片段。

谢谢!

1 个答案:

答案 0 :(得分:1)

你对onClick做得对。试试这个:

 @Override
    public void onClick(View v) {
        if(fragment is playing) {
            return;
        }
        // start a new fragment
    }