【问题标题】:OnItemLongClick doesn't work in RecyclerViewOnItemLongClick 在 RecyclerView 中不起作用
【发布时间】:2015-10-26 07:23:10
【问题描述】:

我对 RecyclerView 有问题,因为当我长按视图时,它会产生简单的点击。这是长按的简单实现。当然,在我的代码中,我将此侦听器设置为我的适配器。

public class HomeListAdapter extends RecyclerView.Adapter<HomeListAdapter<P>.ViewHolder> {

    OnItemClickListener mItemClickListener;
    OnItemLongClickListener mItemLongClickListener;

    public HomeListAdapter() {
    }

    public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener, View.OnLongClickListener {


        public ViewHolder(View itemView, int viewType) {
            super(itemView);
        }

        @Override
        public void onClick(View v) {
            if (mItemClickListener != null) {
                mItemClickListener.onItemClick(itemView, getPosition());
            }
        }

        @Override
        public boolean onLongClick(View v) {
            if (mItemLongClickListener != null) {
                mItemLongClickListener.onItemLongClick(itemView, getPosition());
                return true;
            }
            return false;
        }
    }

        public void setOnItemClickListener(final OnItemClickListener mItemClickListener) {
            this.mItemClickListener = mItemClickListener;
        }

        public void setOnItemLongClickListener(final OnItemLongClickListener mItemLongClickListener) {
            this.mItemLongClickListener = mItemLongClickListener;
        }
    }


public interface OnItemClickListener {
    void onItemClick(View view, int position);
}

public interface OnItemLongClickListener {
    void onItemLongClick(View view, int position);
}


public class HomeListOnItemClickListener implements OnItemClickListener{

    @Override
    public void onItemClick(View view, int position) {
        Log.d("Test", "Click");
    }
}

public class HomeListOnItemLongClickListener implements OnItemLongClickListener{

    @Override
    public void onItemLongClick(View view, int position) {
        Log.d("Test", "Long Click");
    }
}

我们将不胜感激。

【问题讨论】:

标签: android android-recyclerview


【解决方案1】:
itemView.setOnLongClickListener(new OnLongClickListener() 
 {
    @Override
    public boolean onLongClick(View v) {

     Toast.makeText(v.getContext(), "Long Click" ,Toast.LENGTH_SHORT).show();
     return true;

    }
 });

https://developer.android.com/reference/android/support/v7/widget/RecyclerView.html

public void setOnLongClickListener (View.OnLongClickListener l)

在 API 级别 1 中添加注册一个回调,以便在此视图时调用 被点击并按住。如果这个视图不能长时间点击,它就变成 长点击。

【讨论】:

    猜你喜欢
    • 2013-11-06
    • 2021-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-23
    • 2023-03-08
    相关资源
    最近更新 更多