简单利用RecyclerView实现ListView的点击事件
来源:互联网 发布:揭阳网络广告公司 编辑:程序博客网 时间:2024/06/08 03:50
首先点击file-->project-->选中新创建的工程-->dependencies-->点击“+”号-->选中第一个-->找到recyclerview-v7 (com.android.support:recyclerview-v7:25.3.1)-->ok
接着创建布局:
<android.support.v7.widget.RecyclerView android:id="@+id/rv" android:layout_width="match_parent" android:layout_height="match_parent" />
public class MainActivity extends AppCompatActivity { RecyclerView rv; List<String> list=new ArrayList<String>(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); rv= (RecyclerView) findViewById(R.id.rv); //模拟假数据 for(int i=0;i<100;i++){ list.add("条目"+i); } LinearLayoutManager manager=new LinearLayoutManager(this); rv.setLayoutManager(manager); //创建适配器 MyAdapter adapter=new MyAdapter(); rv.setAdapter(adapter); //设置点击事件 adapter.setOnItemClickListener(new OnItemClickListener() { @Override public void OnItemClick(View view, int position) { Toast.makeText(MainActivity.this,"------"+position,Toast.LENGTH_LONG).show(); } }); } public class MyAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>{ //利用接口回调实现点击事件 OnItemClickListener listener; public void setOnItemClickListener(OnItemClickListener listener){ this.listener=listener; } @Override public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { //加载布局 View view=View.inflate(MainActivity.this,R.layout.item,null); //每次点击时都会调用此方法 view.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { //有可能传过来的listener为null if(listener!=null){ //view为每次点击时的条目 //view.getTag()获得条目下标position listener.OnItemClick(view,(int)view.getTag()); } } }); //返回加载的视图 return new LeftViewHolder(view); } @Override public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { //为每个条目赋值 ((LeftViewHolder)holder).tv.setText(list.get(position)); //把条目的下标position设置给holder holder.itemView.setTag(position); } @Override public int getItemCount() { //用三元表达式 如果集合list为空的话返回数目为零否则返回集合数目 return list!=null?list.size():0; } public class LeftViewHolder extends RecyclerView.ViewHolder{ TextView tv; public LeftViewHolder(View itemView) { super(itemView); tv=itemView.findViewById(R.id.tv); } } } public interface OnItemClickListener{ public void OnItemClick(View view,int position); }}
阅读全文
0 0
- 简单利用RecyclerView实现ListView的点击事件
- RecyclerView实现简单点击事件
- RecyclerView与ListView点击事件的区别
- RecyclerView添加点击和长按事件的简单实现
- simpleAdapter的使用和listview点击事件的简单实现
- RecyclerView实现点击事件
- RecyclerView的点击事件及实现
- RecyclerView的Item点击事件实现总结
- RecyclerView的点击事件
- RecyclerView的点击事件
- RecyclerView的点击事件
- RecyclerView的点击事件
- RecyclerView的点击事件
- RecyclerView 的点击事件!
- RecyclerView的点击事件
- RecyclerView 的点击事件
- RecyclerView的点击事件
- RecyclerView的点击事件
- 欧拉函数求和
- leetcode 363. Max Sum of Rectangle No Larger Than K 动态规划DP + 暴力循环
- POJ 2186 Popular Cows 笔记
- 如何解决maven搭建项目的时候,src/main/java无法建立的问题,提示信息The folder is already a source folder.
- qt不同窗口之间的切换
- 简单利用RecyclerView实现ListView的点击事件
- Could not load TestContextBootstrapper [null]. Specify @BootstrapWith's 'val
- ie的png透明图片兼容性问题
- js鼠标滚动 mousewheel
- JS各循环的差别
- SystemUI 剖析
- 华为1
- spring 注解
- mvp框架的简单使用