Android RecyclerView的简单使用
作者:zhu6201976 发布时间:2022-08-07 22:04:23
标签:Android,RecyclerView
本文实例为大家分享了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="">
效果图:


猜你喜欢
- 一. 类型转型将一个类型转换成另一个类型的过程被称为类型转换。 我们所说的对象类型转换,一般是指两个存在继承关系的对象,而不是任意类型的对象
- 用C++流成员函数put输出单个字符在程序中一般用cout和插入运算符“<<”实现输出,cout流在内存中有相应的缓冲区。有时用
- 最近正在学习使用Android Studio,发现默认的Hello World程序界面和我们
- 说在前面:老项目、大项目适配Android X 注意了,一定要谨慎、谨慎、再谨慎。项目中用到的第三方库多的话会很麻烦,有些第三方库还没有适配
- springboot就是简化Spring应用中的初始化配置,快速创建项目而生的。创建springboot项目代开idea,点击File—&g
- intellj idea的强大之处就不多说了,相信每个用过它的人都会体会到,但是我们也会被他的复杂搞的晕头转向,尤其刚从eclipse转过来
- 一、Surface 概述OpenGL ES/Skia定义了一组绘制接口的规范,为什么能够跨平台? 本质上需要与对应平台上的本地窗口建立连接。
- 本文实例讲述了java数据结构与算法之双向循环队列的数组实现方法。分享给大家供大家参考,具体如下:需要说明的是此算法我并没有测试过,这里给出
- 本文实例实现了C#一键换IP、重置DNS、网关及掩码的功能,具体实现的功能为在程序界面窗口中设置ip地址和子网掩码,设置网关地址,设置DNS
- Spring的 * 缓存Spring * 缓存是为了解决对象间的循环依赖问题。A依赖B,B依赖A,这就是一个简单的循环依赖。我们来先看看 * 缓存
- eclipse的代码提交到git,下载后用新的ide工具IJ 进行开发一、导入项目eclipse里有workSpace 但是在IDEA中没有
- 在计算机科学中,正则表达式是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串。在很多文本编辑器或其他工具里,正则表达式通常被
- 1.问题项目中有自己企业的通讯录,但是在应用中拨打公司通讯录的联系人,由于手机通讯录中没有相应的信息,只显示一串电话号2 .目的监听系统来电
- 一、什么叫做匿名类?匿名类就是没有名字的类。匿名类不能被引用,只能再创建的时候用new语句来声明。二、匿名类的优势以及应用场景;1、匿名类型
- 一、javaweb中前端向后端传值的几种方式1.查询字符串的方式即在请求地址后拼接上请求参数,多个参数以&连接- 表单方式提交2.第
- 一、ehcahe的介绍EhCache 是一个纯Java的进程内缓存框架,具有高速、精干等特点,是Hibernate中默认的CacheProv
- ☆代码示例:代码块语法遵循标准markdown代码,例如:package cas;import org.htmlparser.Node;im
- Android studio Run with --stacktrace option to get the stack tra
- public static String toUtf8String(String s) {
- 本文实例为大家分享了java实现微信扫码支付的具体代码,供大家参考,具体内容如下1、maven项目的pom.xml中添加如下jar包:<