databinding学习(4)
2015-09-22 00:00
387 查看
摘要: RecyclerView使用Databinding
RecyclerView使用Databinding
(1)list_item.xml
(2)实现Adapter
(3)在需要使用RecyclerView的Activity布局中
注意 一定要写 全名称
android.support.v7.widget.RecyclerView
(4)在Activity中
声明
调用
RecyclerView使用Databinding
(1)list_item.xml
<?xml version="1.0" encoding="utf-8"?> <layout xmlns:android="http://schemas.android.com/apk/res/android"> <data> <variable name="user_1" type="com.example.lin.myapplication.model.User"/> </data> <LinearLayout android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:text="@{user_1.firstName}" android:id="@+id/tvFirstName" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <TextView android:id="@+id/tvLastName" android:text="@{user_1.lastName}" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout> </layout>
(2)实现Adapter
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.BindingHolder>{ private List<User> users; public MyAdapter() { users = new ArrayList<>(10); for(int i=0; i< 10; i++) { User user = new User("lin", "zhibiao"); users.add(user); } } @Override public int getItemCount() { return users.size(); } @Override public BindingHolder onCreateViewHolder(ViewGroup parent, int viewType) { ViewDataBinding binding = DataBindingUtil.inflate(LayoutInflater.from(parent.getContext()), R.layout.list_item,parent,false); BindingHolder holder = new BindingHolder(binding.getRoot()); holder.setBinding(binding); return holder; } @Override public void onBindViewHolder(BindingHolder holder, int position) { User user = users.get(position); holder.getBinding().setVariable(BR.user_1,user); holder.getBinding().executePendingBindings(); } public static class BindingHolder extends RecyclerView.ViewHolder { ViewDataBinding binding; public BindingHolder(View itemView) { super(itemView); } public ViewDataBinding getBinding() { return binding; } public void setBinding(ViewDataBinding binding) { this.binding = binding; } } }
(3)在需要使用RecyclerView的Activity布局中
<android.support.v7.widget.RecyclerView android:id="@+id/recycletView" android:layout_width="match_parent" android:layout_height="wrap_content"/>
注意 一定要写 全名称
android.support.v7.widget.RecyclerView
(4)在Activity中
声明
private RecyclerView mRecyclerView; private RecyclerView.LayoutManager mLayoutManager;
调用
binding.recycletView.setHasFixedSize(true); mLayoutManager = new LinearLayoutManager(this); binding.recycletView.setLayoutManager(mLayoutManager); binding.recycletView.setAdapter(new MyAdapter());
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories