Android中Recyclerview使用7----条目中按钮点击事件,在activity中调用(接口回调)
来源:互联网 发布:零售 数据 算法 编辑:程序博客网 时间:2024/05/16 06:02
0引入Recyclerview的支持库
compile 'com.android.support:recyclerview-v7:23.4.0'
1效果图:
2代码:
2.1MainActivity中:
<span style="font-size:18px;">public class MainActivity extends Activity { // private RecyclerView mRecyclerView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);// 初始化RecyclerView mRecyclerView = (RecyclerView) findViewById(R.id.id_recyclerview);// RecyclerView设置展示的的样式(listView样子,gridView样子,瀑布流样子)// listView纵向滑动样子 LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this); mRecyclerView.setLayoutManager(linearLayoutManager);// 获取数据,向适配器传数据,绑定适配器 ArrayList<String> datas = initData(); HomeAdapter honmeAdapter = new HomeAdapter(MainActivity.this,datas); mRecyclerView.setAdapter(honmeAdapter);// 调用按钮返回事件回调的方法 honmeAdapter.buttonSetOnclick(new HomeAdapter.ButtonInterface() { @Override public void onclick(View view, int position) { Toast.makeText(MainActivity.this, "点击条目上的按钮"+position, Toast.LENGTH_SHORT).show(); } }); } /** * 编写一套假数据 */ protected ArrayList<String> initData() { ArrayList<String> mDatas = new ArrayList<String>(); for (int i = 0; i < 100; i++) { mDatas.add("我是条目" + i); } return mDatas; }}</span>2.2布局文件:activity_main.xml
<span style="font-size:18px;"><?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" > <android.support.v7.widget.RecyclerView android:id="@+id/id_recyclerview" android:layout_width="match_parent" android:layout_height="match_parent" > </android.support.v7.widget.RecyclerView></LinearLayout></span>2.3条目的布局文件:item_home.xml
<span style="font-size:18px;"><?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:background="#44ff0000" android:layout_height="wrap_content" android:orientation="vertical" ><LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <TextView android:id="@+id/id_num" android:layout_width="0dp" android:layout_height="50dp" android:gravity="center" android:layout_weight="1" /> <Button android:id="@+id/id_button" android:layout_width="0dp" android:layout_height="wrap_content" android:text="按钮" android:layout_weight="1" /></LinearLayout> <TextView android:layout_width="match_parent" android:layout_height="2dp" android:background="#000033" /></LinearLayout></span>3适配器中HomeAdapter
<span style="font-size:18px;">class HomeAdapter extends RecyclerView.Adapter<HomeAdapter.MyViewHolder> { private Context context; private ArrayList<String> list; private ButtonInterface buttonInterface; public HomeAdapter(Context context, ArrayList<String> list) { this.context = context; this.list = list; } /** *按钮点击事件需要的方法 */ public void buttonSetOnclick(ButtonInterface buttonInterface){ this.buttonInterface=buttonInterface; } /** * 按钮点击事件对应的接口 */ public interface ButtonInterface{ public void onclick( View view,int position); } @Override public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { MyViewHolder holder = new MyViewHolder(LayoutInflater.from( context).inflate(R.layout.item_home, parent, false)); return holder; } @Override public void onBindViewHolder(MyViewHolder holder, final int position) { holder.tv.setText(list.get(position)); holder.id_button.setText(list.get(position)); holder.id_button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if(buttonInterface!=null) {// 接口实例化后的而对象,调用重写后的方法 buttonInterface.onclick(v,position); } } }); } @Override public int getItemCount() { return list.size(); } /** * ViewHolder的类,用于缓存控件 */ class MyViewHolder extends RecyclerView.ViewHolder { TextView tv; Button id_button; public MyViewHolder(View itemView) { super(itemView); tv = (TextView) itemView.findViewById(R.id.id_num); id_button = (Button) itemView.findViewById(R.id.id_button); } }}</span>
源码下载:
http://download.csdn.net/detail/zhaihaohao1/9583063
0 0
- Android中Recyclerview使用7----条目中按钮点击事件,在activity中调用(接口回调)
- Android中Activity及条目点击事件
- AndroidStudio GradView在RecyclerView中设置条目(Item)点击事件
- Android中listview条目中按钮点击事件的实现
- Android中Recyclerview使用3----添加条目得到点击事件和长按事件
- 在程序中调用按钮点击事件
- Android中Recyclerview使用11----选中某一条目,在点击后取消选中
- Android中Recyclerview使用6----添加条目得到点击事件和长按事件(另一种写法,较简单)
- list中按钮点击事件在activity中处理
- Android中RecyclerView使用,RecyclerView-Item点击事件设置
- RecyclerView条目的点击事件,接口回调
- 在Activity中响应ListView内部按钮的点击事件
- 在Activity中响应ListView内部按钮的点击事件
- 在Activity中响应ListView内部按钮的点击事件
- 在Activity中响应ListView内部按钮的点击事件
- 在Activity中响应ListView内部按钮的点击事件
- 在Activity中响应ListView内部按钮的点击事件
- 在Activity中响应ListView内部按钮的点击事件
- HDOJ-1042 N!(大数乘法问题)
- 一道sql的笔试题
- 改善既有代码的设计(一)----------小案例展示重构的意义
- Android ListView滑动过程中图片显示重复错乱闪烁问题解决
- 二分法-Rightmost Digit
- Android中Recyclerview使用7----条目中按钮点击事件,在activity中调用(接口回调)
- 51nod 1138 连续整数的和
- 欢迎使用CSDN-markdown编辑器
- sildingmenu model 导入
- php从数据库中获取数据用ajax传送到前台
- HDU 5734 Acperience (观察)
- 2016夏季练习——单调队列
- HDFS的fs.defaultFS的端口
- 按钮的各种操作