RecyclerView的2种监听方式

NO.1:在自定义适配器的ViewHolder里面写监听事件 RecyclerView.Adapter<RecyclerView.ViewHolder> {private Context mContext;private LayoutInflater mLayoutInflater;private String[] mCityName;public RecyclerViewAdapter(Context mContext) {this.mContext = mContext;mLayoutInflater = LayoutInflater.from(mContext);mCityName = mContext.getResources().getStringArray(R.array.city_name);}//创建新ViewHolder,被LayoutManager所调用@Overridepublic RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {return new RecyclerViewViewHolder(mLayoutInflater.inflate(R.layout.item_text, parent, false));}//将数据与界面进行绑定的操作@Overridepublic void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {((RecyclerViewViewHolder) holder).mTextView.setText(mCityName[position]);}//获取数据的数量@Overridepublic int getItemCount() {return mCityName == null ? 0 : mCityName.length;} RecyclerView.ViewHolder {TextView mTextView;public RecyclerViewViewHolder(View itemView) {super(itemView);mTextView = (TextView) itemView.findViewById(R.id.tv_city);itemView.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {ToastUtil.show(mContext, getPosition() + “”);}});}}}

NO.2:封装个监听类.OnItemTouchListener {private OnItemClickListener mListener;{(View view, int position);}GestureDetector mGestureDetector;public RecyclerItemClickListener(Context context, OnItemClickListener listener) {mListener = listener;mGestureDetector = new GestureDetector(context, new GestureDetector.SimpleOnGestureListener() {(MotionEvent e) {return true;}});}(RecyclerView view, MotionEvent e) {View childView = view.findChildViewUnder(e.getX(), e.getY());if (childView != null && mListener != null && mGestureDetector.onTouchEvent(e)) {mListener.onItemClick(childView, view.getChildPosition(childView));return true;}return false;}(RecyclerView view, MotionEvent motionEvent) { }}

使用方法:

mRecyclerView = (RecyclerView) findViewById(R.id.recycler_view);mRecyclerView.addOnItemTouchListener(new RecyclerItemClickListener(this, new RecyclerItemClickListener.OnItemClickListener() {(View view, int position) {ToastUtil.show(OneActivity.this, position + “”);}}));

,还深深埋在心底,要除去,怕是不能活命。

RecyclerView的2种监听方式

相关文章:

你感兴趣的文章:

标签云: