Android开发学习之RecyclerView
程序员文章站
2022-03-10 14:40:55
1、在app/build.gradle中添加RecyclerView依赖 注意依赖版本号 2、布局文件activity_main.xml引入RecycleView 3、泛型类型Fruit.java 4、布局fruit_item.xml 5、适配器FruitAdapter.java 6、配置并使用Re ......
1、在app/build.gradle中添加recyclerview依赖
1 implementation 'com.android.support:recyclerview-v7:28.0.0'
注意依赖版本号
2、布局文件activity_main.xml引入recycleview
1 <android.support.v7.widget.recyclerview 2 android:id="@+id/recycler_view" 3 android:layout_width="match_parent" 4 android:layout_height="match_parent"></android.support.v7.widget.recyclerview>
3、泛型类型fruit.java
1 package com.example.lalala.recyclerviewdemo; 2 3 public class fruit { 4 private string name; 5 private int imageid; 6 public fruit(string name,int imageid){ 7 this.name = name; 8 this.imageid = imageid; 9 } 10 11 public string getname() { 12 return name; 13 } 14 15 public int getimageid() { 16 return imageid; 17 } 18 }
4、布局fruit_item.xml
1 <?xml version="1.0" encoding="utf-8"?> 2 <linearlayout xmlns:android="http://schemas.android.com/apk/res/android" 3 android:orientation="horizontal" android:layout_width="match_parent" 4 android:layout_height="wrap_content"> 5 <imageview 6 android:id="@+id/fruit_image" 7 android:layout_width="wrap_content" 8 android:layout_height="wrap_content" /> 9 <textview 10 android:id="@+id/fruit_name" 11 android:layout_width="wrap_content" 12 android:layout_height="wrap_content" 13 android:layout_gravity="center_vertical" 14 android:layout_marginleft="10dp" 15 /> 16 </linearlayout>
5、适配器fruitadapter.java
1 package com.example.lalala.recyclerviewdemo; 2 3 import android.support.annotation.nonnull; 4 import android.support.v7.widget.recyclerview; 5 import android.view.layoutinflater; 6 import android.view.view; 7 import android.view.viewgroup; 8 import android.widget.imageview; 9 import android.widget.textview; 10 11 import java.util.list; 12 13 public class fruitadapter extends recyclerview.adapter<fruitadapter.viewholder> { 14 //适配器保存的数据 15 private list<fruit> mfruitlist; 16 //view容器类,viewholder容纳view 17 static class viewholder extends recyclerview.viewholder{ 18 imageview imageview; 19 textview textview; 20 public viewholder(view view){ 21 super(view); 22 imageview = (imageview)view.findviewbyid(r.id.fruit_image); 23 textview = (textview)view.findviewbyid(r.id.fruit_name); 24 } 25 } 26 //构造函数初始化适配器 27 public fruitadapter(list<fruit> fruitlist){ 28 mfruitlist = fruitlist; 29 } 30 //创建viewholder 31 @nonnull 32 @override 33 public viewholder oncreateviewholder(@nonnull viewgroup viewgroup, int i) { 34 view view = layoutinflater.from(viewgroup.getcontext()).inflate(r.layout.fruit_item,viewgroup,false); 35 viewholder viewholder = new viewholder(view); 36 return viewholder; 37 } 38 //绑定数据到viewholder 39 @override 40 public void onbindviewholder(@nonnull viewholder viewholder, int i) { 41 fruit fruit = mfruitlist.get(i); 42 viewholder.imageview.setimageresource(fruit.getimageid()); 43 viewholder.textview.settext(fruit.getname()); 44 } 45 //返回子项个数 46 @override 47 public int getitemcount() { 48 return mfruitlist.size(); 49 } 50 }
6、配置并使用recyclerview
1 package com.example.lalala.recyclerviewdemo; 2 3 import android.support.v7.app.appcompatactivity; 4 import android.os.bundle; 5 import android.support.v7.widget.linearlayoutmanager; 6 import android.support.v7.widget.recyclerview; 7 8 import java.util.arraylist; 9 import java.util.list; 10 11 public class mainactivity extends appcompatactivity { 12 13 private list<fruit> fruitlist = new arraylist<>(); 14 15 @override 16 protected void oncreate(bundle savedinstancestate) { 17 super.oncreate(savedinstancestate); 18 setcontentview(r.layout.activity_main); 19 initfruit(); 20 //使用recyclerview 21 recyclerview recyclerview = (recyclerview)findviewbyid(r.id.recycler_view); 22 //布局管理器 23 linearlayoutmanager layoutmanager = new linearlayoutmanager(this); 24 recyclerview.setlayoutmanager(layoutmanager); 25 fruitadapter adapter = new fruitadapter(fruitlist); 26 recyclerview.setadapter(adapter); 27 } 28 private void initfruit(){ 29 for(int i=0;i<8;i++){ 30 fruit apple = new fruit("apple",r.mipmap.ic_launcher); 31 fruitlist.add(apple); 32 fruit pear = new fruit("pear",r.mipmap.ic_launcher); 33 fruitlist.add(pear); 34 fruit banana = new fruit("banana",r.mipmap.ic_launcher); 35 fruitlist.add(banana); 36 } 37 } 38 }
7、大功告成,运行截图
推荐阅读
-
Android 开发之Dialog,Toast,Snackbar提醒
-
Android开发之XML文件解析的使用
-
解析Android开发优化之:对界面UI的优化详解(一)
-
解析Android开发优化之:对界面UI的优化详解(二)
-
解析Android开发优化之:从代码角度进行优化的技巧
-
解析Android开发优化之:对界面UI的优化详解(三)
-
Android开发在RecyclerView上面实现"拖放"和"滑动删除"-2
-
Android 游戏开发之Canvas画布的介绍及方法
-
Android开发之ToggleButton实现开关效果示例
-
Android开发之CheckBox的简单使用与监听功能示例