【问题标题】:How to avoid double selection on a RecyclerView OnClickListener?如何避免在 RecyclerView OnClickListener 上进行双重选择?
【发布时间】:2016-01-12 22:26:55
【问题描述】:

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

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

更新: 这是一个“包选择屏幕”,您将在其中选择要玩的包。然后它将显示一个新片段,其中包含所选包中的所有谜题。

谢谢!

【问题讨论】:

  • 这对我来说似乎是正确的行为......您希望显示两者的哪个片段
  • 不管哪个(可能是第一个),我只是不想打开两个片段

标签: android onclicklistener android-recyclerview


【解决方案1】:

onClick 你做得对。试试这个:

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

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-10-17
  • 2016-10-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-24
  • 2011-07-17
相关资源
最近更新 更多