#Android学习#RecyclerView基础
来源:互联网 发布:java 引号转义 编辑:程序博客网 时间:2024/05/16 09:06
今天来聊下RecyclerView。RecyclerView的定位是用来取代ListView的,它的使用也很简单,一句话来说就是在Activity里new一个RecyclerView,然后用setAdapter把数据添加进去即可。下面通过一个简单的例子来看看RecyclerView的使用。
新建一个Android Studio Project,选择blank Activity,点finish。MainActivity的onCreate的代码如下:
//MainActivity protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // 新建一个RecyclerView recyclerView = new RecyclerView(this); // 设为启动显示的view setContentView(recyclerView); // 添加LinearLayout //recyclerView.setLayoutManager(new LinearLayoutManager(this)); //recyclerView.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL,true)); // 添加GridLayout recyclerView.setLayoutManager(new GridLayoutManager(this,3)); //添加数据 recyclerView.setAdapter(new MyAdapter()); }
新建一个class,继承RecyclerView.Adapter,并复写onCreateViewHolder
、onBindViewHolder
及getItemCount
三个函数
// MyAdapter @Override public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { //return new ViewHolder(new TextView(parent.getContext())); // 调用资源文件 return new ViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.list_cell, null)); } @Override public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { CellData cdata = cellData[position]; ViewHolder viewHolder = (ViewHolder) holder; viewHolder.getTvTitle().setText(cdata.getTitle()); viewHolder.getTvContent().setText(cdata.getContent()); } @Override public int getItemCount() { return cellData.length; }
onCreateViewHolder
中return的时候,我们使用了自定义的资源文件list_cell,另外ViewHolder是我们自己定义的类并继承RecyclerView.ViewHolder,通过ViewHolder,我们可以控制新建的RecyclerView里的内容
// MyAdapter ViewHolderpublic class ViewHolder extends RecyclerView.ViewHolder { private View view; private TextView tvTitle, tvContent; public ViewHolder(View itemView) { super(itemView); view = itemView; // list_cell布局文件中的控件 tvTitle = (TextView) itemView.findViewById(R.id.tvTitle); tvContent = (TextView) itemView.findViewById(R.id.tvContent); } public View getTextView() { return view; } public TextView getTvTitle() { return tvTitle; } public TextView getTvContent() { return tvContent; } }
//list_cell<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/tvTitle"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/tvContent"/></LinearLayout>
刚开始学习,这里只是记录一些自己觉得重要的东西,如果以后有新的认识,也会更新上来。
0 0
- #Android学习#RecyclerView基础
- Android RecyclerView基础学习(三)
- android studio recyclerview基础
- android 基础 ---> RecyclerView
- android中的recyclerview的基础学习(一)
- android中的recyclerview的基础学习(二)
- Android学习之RecyclerView
- Android学习之RecyclerView
- Android学习之RecyclerView
- Android学习之RecyclerView
- Android学习之RecyclerView
- Android学习RecyclerView小结
- android RecyclerView学习笔记
- Android--RecyclerView学习
- Android RecyclerView源码学习
- [学习笔记]Android RecyclerView
- Android学习之RecyclerView
- Android学习--RecyclerView
- three.js制作一个立体几何体
- Windows10下搭建React Native Android开发环境
- android inflater 用法
- Snackbar的使用
- 仿微信引导界面PageAdapter
- #Android学习#RecyclerView基础
- Spring AOP拦截对Controller的请求时的配置失败
- android开发之ListView基本用法
- c++引用计数实现
- 安卓开发之 四 定时清理问题
- 初识Vulkan
- gdb调试程序
- Cassandra系列之入门
- iOS UIActionSheet提示框