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的简单使用

Android RecyclerView的简单使用

标签:Android,RecyclerView
0
投稿

猜你喜欢

  • Java生成和解析XML格式文件和字符串的实例代码

    2023-01-25 08:22:44
  • Java技能点之SimpleDateFormat进行日期格式化问题

    2023-09-09 01:50:26
  • Java的Hibernate框架结合MySQL的入门学习教程

    2021-10-18 04:48:20
  • SpringBoot多数据源配置详细教程(JdbcTemplate、mybatis)

    2023-08-26 01:59:33
  • C#字符串如何提取数值(带小数点)

    2023-01-27 06:10:25
  • Android开发实现模仿微信小窗口功能【Dialog对话框风格窗口】

    2022-01-27 10:11:01
  • java的线程池框架及线程池的原理

    2023-11-16 22:04:51
  • Android 将网络的Url资源转换为Drawable资源方式

    2023-06-23 03:06:19
  • Kotlin协程之Flow基础原理示例解析

    2021-10-17 21:07:44
  • 利用Jetpack Compose绘制可爱的天气动画

    2022-04-06 18:50:35
  • winform 调用摄像头扫码识别二维码的实现步骤

    2022-08-08 21:50:20
  • Java语言实现简单FTP软件 FTP协议分析(1)

    2023-11-10 17:57:21
  • java二叉树面试题详解

    2021-06-13 08:40:23
  • C#/VB.NET 自定义PPT动画路径的步骤

    2022-11-25 10:07:49
  • Android中判断网络是否连接实例详解

    2023-10-19 11:45:39
  • 使用Spring Boot AOP处理方法的入参和返回值

    2022-03-02 07:25:41
  • 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
  • java性能优化之编译器版本与平台对应关系

    2023-09-04 18:31:48
  • asp之家 软件编程 m.aspxhome.com