Android RecyclerView的简单使用
作者:zhu6201976 时间:2022-08-07 22:04:23
本文实例为大家分享了Android RecyclerView使用的具体代码,供大家参考,具体内容如下
package com.itheima74.recyclerview;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import java.util.ArrayList;
/**
* RecyclerView
* 1.增强版的listview
* 2.官方推荐
* 3.使用步骤:
* a.build.gradle文件中添加依赖compile 'com.android.support:recyclerview-v7:25.2.0'
* b.xml布局中引入,注意完整包名+类名
* c.具体见代码
*/
public class MainActivity extends AppCompatActivity {
ArrayList<Fruit> mFruitList;
private RecyclerView recyclerview;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
initData();
initAdapter();
}
/**
* 初始化数据适配器
*/
private void initAdapter() {
recyclerview.setAdapter(new FruitAdapter());
}
/**
* 初始化控件
*/
private void initView() {
recyclerview = (RecyclerView) findViewById(R.id.recyclerview);
// 设置为LinearLayoutManager布局方式,线性布局
// LinearLayoutManager layoutManager = new LinearLayoutManager(this);
// 两种方式,水平或垂直排布,默认垂直排布
// layoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);
// recyclerview.setLayoutManager(layoutManager);
// 设置为GridLayoutManager布局方式,3列排布
GridLayoutManager gridLayoutManager = new GridLayoutManager(this,3);
recyclerview.setLayoutManager(gridLayoutManager);
}
/**
* 初始化数据,水果集合
*/
private void initData() {
mFruitList = new ArrayList<>();
mFruitList.add(new Fruit("apple", R.drawable.apple_pic));
mFruitList.add(new Fruit("banana", R.drawable.banana_pic));
mFruitList.add(new Fruit("cherry", R.drawable.cherry_pic));
mFruitList.add(new Fruit("grape", R.drawable.grape_pic));
mFruitList.add(new Fruit("mango", R.drawable.mango_pic));
mFruitList.add(new Fruit("orange", R.drawable.orange_pic));
mFruitList.add(new Fruit("pear", R.drawable.pear_pic));
mFruitList.add(new Fruit("pineapple", R.drawable.pineapple_pic));
mFruitList.add(new Fruit("strawberry", R.drawable.strawberry_pic));
mFruitList.add(new Fruit("watermelon", R.drawable.watermelon_pic));
}
class FruitAdapter extends RecyclerView.Adapter<ViewHolder> {
// 返回ViewHolder对象
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
return new ViewHolder(View.inflate(getApplicationContext(), R.layout.listview_item, null));
}
// 刷新界面,为ViewHolder两个属性设置内容
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
Fruit fruit = mFruitList.get(position);
holder.iv.setImageResource(fruit.imageId);
holder.tv.setText(fruit.name);
}
@Override
public int getItemCount() {
// FruitAdapter是MainActivity的内部类,可以直接使用外部类的成员变量
return mFruitList.size();
}
}
static class ViewHolder extends RecyclerView.ViewHolder {
ImageView iv;
TextView tv;
ViewHolder(View itemView) {
super(itemView);
iv = (ImageView) itemView.findViewById(R.id.iv);
tv = (TextView) itemView.findViewById(R.id.tv);
}
}
}
package com.itheima74.recyclerview;
/**
* Created by My on 2017/3/2.
*/
class Fruit {
String name;
int imageId;
Fruit(String name, int imageId) {
this.name = name;
this.imageId = imageId;
}
}
<img src="http://img.blog.csdn.net/20170303085928987?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvemh1NjIwMTk3Ng==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
效果图:
标签:Android,RecyclerView
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
Java生成和解析XML格式文件和字符串的实例代码
2023-01-25 08:22:44
Java技能点之SimpleDateFormat进行日期格式化问题
2023-09-09 01:50:26
![](https://img.aspxhome.com/file/2023/9/58339_0s.jpg)
Java的Hibernate框架结合MySQL的入门学习教程
2021-10-18 04:48:20
![](https://img.aspxhome.com/file/2023/7/67007_0s.png)
SpringBoot多数据源配置详细教程(JdbcTemplate、mybatis)
2023-08-26 01:59:33
C#字符串如何提取数值(带小数点)
2023-01-27 06:10:25
![](https://img.aspxhome.com/file/2023/9/94649_0s.jpg)
Android开发实现模仿微信小窗口功能【Dialog对话框风格窗口】
2022-01-27 10:11:01
![](https://img.aspxhome.com/file/2023/6/103906_0s.gif)
java的线程池框架及线程池的原理
2023-11-16 22:04:51
Android 将网络的Url资源转换为Drawable资源方式
2023-06-23 03:06:19
Kotlin协程之Flow基础原理示例解析
2021-10-17 21:07:44
![](https://img.aspxhome.com/file/2023/4/116034_0s.png)
利用Jetpack Compose绘制可爱的天气动画
2022-04-06 18:50:35
![](https://img.aspxhome.com/file/2023/7/105987_0s.gif)
winform 调用摄像头扫码识别二维码的实现步骤
2022-08-08 21:50:20
![](https://img.aspxhome.com/file/2023/5/129675_0s.png)
Java语言实现简单FTP软件 FTP协议分析(1)
2023-11-10 17:57:21
![](https://img.aspxhome.com/file/2023/7/59027_0s.jpg)
java二叉树面试题详解
2021-06-13 08:40:23
![](https://img.aspxhome.com/file/2023/6/63016_0s.png)
C#/VB.NET 自定义PPT动画路径的步骤
2022-11-25 10:07:49
![](https://img.aspxhome.com/file/2023/6/104236_0s.png)
Android中判断网络是否连接实例详解
2023-10-19 11:45:39
使用Spring Boot AOP处理方法的入参和返回值
2022-03-02 07:25:41
![](https://img.aspxhome.com/file/2023/3/87363_0s.jpg)
maven创建spark项目的pom.xml文件配置demo
2023-11-02 01:14:02
基于Java实现Json文件转换为Excel文件
2022-08-04 23:53:15
快速排序算法在Java中的实现
2022-05-25 01:06:15
![](https://img.aspxhome.com/file/2023/7/69317_0s.png)
java性能优化之编译器版本与平台对应关系
2023-09-04 18:31:48