相关疑难解决方法(0)

RecyclerView:如何添加OnClick()并保持onLongClick()工作?

我有onClickListener一个CheckBox用于RecyclerView保存CardView列表的设置.在我的ItemHolder扩展中设置了监听器ViewHolder.初始点击CardView检查CheckBox并将CardView的背景颜色从默认的白色切换为红色.这工作正常.

我也有自己的OnClickListener设置CardView.它OnClickListener是在onCreateViewHolder().中设置的.单击将CardView启动新的详细活动CardView.这工作正常.

最后,我尝试onLongClickListener在CardView上设置一个.该OnLongClickListener设置在onCreateViewHolder().CardView上的longpress意味着将背景颜色切换为红色并启动AlertDialog,以便用户可以确认将从列表中删除CardView.这可以正常工作,但是当这个代码添加到适配器时OnClickListerner,CardView的CheckBox不再有效.就好像它OnLongClickListner与CheckBox监听器冲突一样.注意我在itemHolder的onLongClick()代码中"返回true" .我在这里错过了什么?

Adapter.java

public MyRecylerAdapter(Context context, ArrayList<ListItem> listItems, ArrayList<ListItem> selectedList) {
    this.mContext = context;
    this.mListItems = listItems;
    this.selectedItemsList = selectedList;
}

private int selectedPos = -1;
...

private class ItemHolder extends RecyclerView.ViewHolder implements View.OnClickListener {

    private CardView cardView;
    private CheckBox chkSelected;

    private …
Run Code Online (Sandbox Code Playgroud)

checkbox android android-recyclerview

7
推荐指数
1
解决办法
1714
查看次数

recycleview onLongclick会自动调用onClick

我的工作RecyclerView onItemClickonItemLongClick,工作都不错,但问题是onItemLongClick还要求onItemClick.

这是我的适配器代码:

package Adaptor;

import android.annotation.SuppressLint;
import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

import com.wings.example.recycleview.MainActivity;
import com.wings.example.recycleview.R;

import java.util.ArrayList;

public class SampleAdapter extends RecyclerView.Adapter<SampleAdapter.ViewHolder> {


Context context;
private ArrayList<String> arrayList;
private static onClickListner onclicklistner;

public SampleAdapter(Context context) {
    this.context = context;
    arrayList = MainActivity.arrayList;
}

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

    TextView txt_pos;
    SampleAdapter sampleAdapter;

    public ViewHolder(View itemView, SampleAdapter sampleAdapter) {
        super(itemView);

        itemView.setOnClickListener(this); …
Run Code Online (Sandbox Code Playgroud)

android onitemclicklistener android-recyclerview

-1
推荐指数
1
解决办法
1105
查看次数