RecyclerView实现简单点击事件
来源:互联网 发布:php正则表达式邮箱注册 编辑:程序博客网 时间:2024/05/21 06:31
Adapter类中的内容
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> implements View.OnClickListener { private String[] datas; public MyAdapter(String[] datas) { this.datas = datas; } private OnItemClickListener mOnItemClickListener = null; //define interface public static interface OnItemClickListener { void onItemClick(View view, int position); } @Override public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int viewType) { View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.item, viewGroup, false); ViewHolder vh = new ViewHolder(view); //将创建的View注册点击事件 view.setOnClickListener(this); return vh; } @Override public void onBindViewHolder(ViewHolder viewHolder, int position) { viewHolder.mTextView.setText(datas[position]); //将position保存在itemView的Tag中,以便点击时进行获取 viewHolder.itemView.setTag(position); } @Override public void onClick(View v) { if (mOnItemClickListener != null) { //注意这里使用getTag方法获取position mOnItemClickListener.onItemClick(v, (int) v.getTag()); } } public void setOnItemClickListener(OnItemClickListener listener) { this.mOnItemClickListener = listener; } //获取数据的数量 @Override public int getItemCount() { return datas.length; } //自定义的ViewHolder,持有每个Item的的所有界面元素 public static class ViewHolder extends RecyclerView.ViewHolder { public TextView mTextView; public ViewHolder(View view) { super(view); mTextView = (TextView) view.findViewById(R.id.text); } }}xml布局
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="200dp" android:orientation="vertical"> <TextView android:id="@+id/text" android:layout_width="wrap_content" android:layout_height="wrap_content" /></LinearLayout>MainActivity里的代码
public class MainActivity extends AppCompatActivity { private RecyclerView mRecyclerView; private LinearLayoutManager mLayoutManager; private MyAdapter mAdapter; private String[] data = new String[]{"1111", "2222", "3333", "4444", "5555", "6666", "7777", "8888", "9999", "aaaa", "bbbb", "cccc", "dddd", "eeee", "ffff", "gggg", "hhhh", "iiii", "jjjj", "kkkk"}; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mRecyclerView = (RecyclerView) findViewById(R.id.main_rcView); mLayoutManager = new LinearLayoutManager(this); mRecyclerView.setLayoutManager(mLayoutManager); //如果可以确定每个item的高度是固定的,设置这个选项可以提高性能 mRecyclerView.setHasFixedSize(true); //创建并设置Adapter mAdapter = new MyAdapter(data); mRecyclerView.setAdapter(mAdapter); mAdapter.setOnItemClickListener(new MyAdapter.OnItemClickListener() { @Override public void onItemClick(View view, int position) { Toast.makeText(MainActivity.this, data[position], 600).show(); } }); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. //getMenuInflater().inflate(R.menu.main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); /*if (id == R.id.action_settings) { return true; }*/ return super.onOptionsItemSelected(item); }}
阅读全文
0 0
- RecyclerView实现简单点击事件
- RecyclerView实现点击事件
- RecyclerView添加点击和长按事件的简单实现
- 简单利用RecyclerView实现ListView的点击事件
- RecyclerView实现九宫格和点击事件
- RecyclerView实现Item点击事件方法一
- RecyclerView实现Item点击事件方法二
- RecyclerView的点击事件及实现
- RecyclerView的Item点击事件实现总结
- RecyclerView Item点击事件实现 类似GridView
- recyclerview简析,点击事件实现简析
- RecyclerView 超简单item点击实现
- RecyclerView 点击事件
- RecyclerView点击事件
- RecyclerView的点击事件
- Recyclerview点击事件
- RecyclerView的点击事件
- RecyclerView的点击事件
- 2017中国·光谷国际人工智能产业峰会
- Handler学习笔记
- 欢迎使用CSDN-markdown编辑器
- memset()函数
- Eureka
- RecyclerView实现简单点击事件
- banner控件实现无线轮播+PullToRefreshScrollView 轮播图和listview跟着一起刷新
- 171025—例题分析 & 思维拓展
- 第一章 Linux概述课后简述题
- android监听音量上下键调节音量
- shell逐行读取文件内容
- 点击item/图片二次采样
- 微信小程序实现跳转的几种方式总结
- 2017年第34届香港国际珠宝展会刊(参展商名录)