Android----------Recyclerview设置点击事件
2017-07-31 10:23
253 查看
OkHttp网络请求依赖:
compile 'com.squareup.okhttp3:okhttp:3.8.1'
RecyclerView依赖:
compile 'com.android.support:recyclerview-v7:26.0.0-alpha1'
XRecyclerView依赖:
compile 'com.jcodecraeer:xrecyclerview:1.3.2'
1.适配器中
public class Myadapter extends RecyclerView.Adapter { private View view; private Context mcontext; private ArrayList<News.DataBean> mlist=new ArrayList<>(); private OnItemClickListener mClickListener; public Myadapter(Context mcontext,ArrayList<News.DataBean> list) { this.mcontext = mcontext; this.mlist=list; } //找到需要导入的布局 @Override public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { view = LayoutInflater.from(mcontext).inflate(R.layout.item, null); return new ViewHolder(view,mClickListener); } //加载相应的内容 @Override public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { ViewHolder viewholder=(ViewHolder)holder; viewholder.age.setText(""+getItem(position).getUserAge()); viewholder.work.setText(""+getItem(position).getOccupation()); viewholder.introduction.setText(""+getItem(position).getIntroduction()); Glide.with(mcontext).load(getItem(position).getImg()).into(viewholder.ima); } //手写的重置数据的方法 public void setdata(ArrayList<News.DataBean> list){ if (list!=null&&list.size()>0){ mlist.addAll(list); } } //手写的获得视图的方法 public News.DataBean getItem(int position){ return mlist.get(position); }; @Override public int getItemCount() { return mlist.size(); } //定义的ViewHolder类继承RecyclerView.ViewHolder 并找到布局中的ID public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener{ private OnItemClickListener mListener;// 声明自定义的接口 private TextView age,work,introduction; private ImageView ima; public ViewHolder(View itemView,OnItemClickListener listener) { super(itemView); mListener=listener; //给item设置点击事件 itemView.setOnClickListener(this); age=(TextView)itemView.findViewById(R.id.age); work=(TextView)itemView.findViewById(R.id.work); introduction=(TextView)itemView.findViewById(R.id.introduction); ima=(ImageView)itemView.findViewById(R.id.image); } @Override public void onClick(View v) { // getpostion()为Viewholder自带的一个方法,用来获取RecyclerView当前的位置,将此作为参数,传出去 mListener.onItemClick(v,getPosition()); } } //手写的一个接口 public interface OnItemClickListener { public void onItemClick(View view, int postion); } //自定义的方法 public void setOnItemClickListener(OnItemClickListener listener){ this.mClickListener=listener; } }
2.在需要设置点击事件的页面内
//Recyclerview的点击事件md.setOnItemClickListener(new Myadapter.OnItemClickListener() { @Override public void onItemClick(View view, int postion) { Toast.makeText(MainActivity.this, mlist.get(postion).getIntroduction(), Toast.LENGTH_SHORT).show(); } });
----------------------------------------------------------------------------------------------------------------------------------------------------
加一个点,就是Recyclerview滑动到底部加载更多
注:a为链接URL最后的page数
initdata()为网络请求的方法
mrv为Recyclerview的变量名
//下拉加载更多 mrv.addOnScrollListener(new RecyclerView.OnScrollListener() { @Override public void onScrollStateChanged(RecyclerView recyclerView, int newState) { LinearLayoutManager lm = (LinearLayoutManager) mrv.getLayoutManager(); int totalItemCount = recyclerView.getAdapter().getItemCount(); int lastVisibleItemPosition = lm.findLastVisibleItemPosition(); int visibleItemCount = recyclerView.getChildCount(); if (newState==mrv.SCROLL_STATE_IDLE&& lastVisibleItemPosition == totalItemCount - 1 && visibleItemCount > 0){ //加载更多 a++; initdata(); } } });
相关文章推荐
- Android中RecyclerView使用,RecyclerView-Item点击事件设置
- 【Android 界面效果48】Android-RecyclerView-Item点击事件设置
- Android中RecyclerView点击Item设置事件
- Android-RecyclerView-Item点击事件设置
- Android-RecyclerView-Item点击事件设置
- 【Android 界面效果48】Android-RecyclerView-Item点击事件设置
- Android-RecyclerView-Item点击事件设置
- Android-RecyclerView-Item点击事件设置
- Android-RecyclerView-Item点击事件设置
- Android RecyclerView设置点击事件
- Android中ViewPager+TabLayout+RecyclerView+点击事件的传递
- Android RecyclerView给Item添加点击事件
- RecyclerView的基本使用(优化图片加载、设置条目间距、设置Adapter、设置点击事件等)
- Android RecyclerView Item点击事件
- 关于android自定义切割view并在每个区域设置点击事件
- Android RecyclerView 的点击事件
- android TextView改变部分字体的颜色,大小,设置部分字体有点击事件
- Android使用RecyclerView实现自定义列表、点击事件以及下拉刷新
- Android中RecyclerView的item中控件的点击事件添加删除一行、上移下移一行的代码实现
- Android中RecyclerView点击,长按事件详解