Android RecyclerView的简单使用

 更新时间:2017年03月03日 13:38:35   作者:zhu6201976  
这篇文章主要为大家详细介绍了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=""> 

效果图:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Flutter + Idea 环境搭建及配置教程

    Flutter + Idea 环境搭建及配置教程

    本文主要总结我实际搭建的过程,最后发现不一定按网上那些博客或者官方文档写的来也可以搭建成功,在这里小编给大家分享下Flutter + Idea 环境搭建及配置教程,感兴趣的朋友参考下吧
    2021-12-12
  • 通知监控NotificationListenerService onNotificationPosted重复回调问题

    通知监控NotificationListenerService onNotificationPosted重复回

    这篇文章主要为大家介绍了通知监控NotificationListenerService onNotificationPosted重复回调问题解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-02-02
  • 常见android app加固厂商脱壳方法研究

    常见android app加固厂商脱壳方法研究

    这篇文章主要介绍了常见android app加固厂商脱壳方法研究,需要的朋友可以参考下
    2018-01-01
  • Android中实现词组高亮TextView方法示例

    Android中实现词组高亮TextView方法示例

    高亮显示大家应该都不陌生,在开发中经常会遇到这个需求,所以下面这篇文章主要给大家介绍了关于Android中实现词组高亮TextView的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-10-10
  • Android 8.0不能自动安装APK问题的解决方法(完美适配)

    Android 8.0不能自动安装APK问题的解决方法(完美适配)

    这篇文章主要给大家介绍了关于Android 8.0不能自动安装APK问题的解决方法(完美适配),这里的自动安装是指下载完成后,自动弹出安装界面,而不是静默安装APK,文中介绍的非常详细,需要的朋友可以参考下
    2018-07-07
  • Android开发之Animations动画用法实例详解

    Android开发之Animations动画用法实例详解

    这篇文章主要介绍了Android开发之Animations动画用法,结合实例形式详细分析了Animations动画的类型、组成、模式及对应的使用技巧,需要的朋友可以参考下
    2016-02-02
  • Android实现Gesture手势识别用法分析

    Android实现Gesture手势识别用法分析

    这篇文章主要介绍了Android实现Gesture手势识别用法,结合实例形式较为详细的分析了Android基于Gesture实现手势识别的原理与具体实现技巧,需要的朋友可以参考下
    2016-09-09
  • Android中Java instanceof关键字全面解析

    Android中Java instanceof关键字全面解析

    instanceof关键字用于判断一个引用类型变量所指向的对象是否是一个类(或接口、抽象类、父类)的实例.这篇文章主要介绍了Android中Java instanceof关键字全面解析的相关资料,需要的朋友可以参考下
    2016-07-07
  • 基于Android实现自动滚动布局

    基于Android实现自动滚动布局

    在平时的开发中,有时会碰到这样的场景,设计上布局的内容会比较紧凑,导致部分机型上某些布局中的内容显示不完全,或者在数据内容多的情况下,单行无法显示所有内容,这里给大家简单介绍下布局自动滚动的一种实现方式,感兴趣的朋友可以参考下
    2023-12-12
  • Android小程序实现简易QQ界面

    Android小程序实现简易QQ界面

    这篇文章主要为大家详细介绍了Android小程序实现简易QQ界面,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-05-05

最新评论