RecyclerView简单的实例

来源:互联网 发布:网络的利与弊作文800 编辑:程序博客网 时间:2024/06/05 09:42

温故而知新,献上一段郭神的RecyclerView供大家参考

一个Fruit

public class Fruit {    private String name;    public Fruit(String name) {        this.name = name;    }    public String getName() {        return name;    }

Fruit的布局文件

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:orientation="vertical" android:layout_width="match_parent"    android:layout_height="match_parent"><TextView    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:id="@+id/fruit_name"    android:gravity="center_vertical"    android:layout_marginLeft="10dp"/></LinearLayout>

一个FruitAdapter

import android.support.v7.widget.RecyclerView;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.TextView;import java.util.List;/** * Created by Dam on 2017/9/19. */public class FruitAdapter extends RecyclerView.Adapter<FruitAdapter.ViewHolder> {    private List<Fruit> mFruitList;    static class ViewHolder extends RecyclerView.ViewHolder {            TextView fruitName;        public ViewHolder(View view) {                       //参数view为RecycleView子项的最外层布局,可以从findviewbyid获取布局中的TextView实例            super(view);            fruitName = (TextView)view.findViewById(R.id.fruit_name);        }    }    public FruitAdapter(List<Fruit> fruitList) {                                        //把要展示的数据源传进来并赋值给全局变量mFruitList        mFruitList = fruitList;    }    @Override       //用于创建ViewHolder实例    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.fruit_item, parent, false);//将布局加载进来传入构造函数,创建ViewHolder实例        ViewHolder holder = new ViewHolder(view);        return holder;                                  //将ViewHolder实例返回    }    @Override       //用于对RecyclerView子项的数据进行赋值,在每个子项被滚动到屏幕内时执行    public void onBindViewHolder(ViewHolder holder, int position) {        Fruit fruit = mFruitList.get(position);          //通过position得到当前项的Fruit实例        holder.fruitName.setText(fruit.getName());      //将数据设置到ViewHolder的TextView中    }    @Override    public int getItemCount() {         //告诉RecyclerView有多少子项,直接返回数据源长度        return mFruitList.size();    }}

activity_main

<?xml version="1.0" encoding="utf-8"?><android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:app="http://schemas.android.com/apk/res-auto"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    tools:context="com.inclub.demo916.MainActivity"><android.support.v7.widget.RecyclerView    android:layout_width="match_parent"    android:layout_height="match_parent"    android:id="@+id/recyclerview"></android.support.v7.widget.RecyclerView></android.support.constraint.ConstraintLayout>

MainAcitivity

import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.support.v7.widget.LinearLayoutManager;import android.support.v7.widget.RecyclerView;import java.util.ArrayList;import java.util.List;public class MainActivity extends AppCompatActivity {    private List<Fruit> fruitList = new ArrayList<>();    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        initFruits();                                                           //初始化水果数据        RecyclerView recyclerView = (RecyclerView) findViewById(R.id.recyclerview);//获取RecyclerView实例        LinearLayoutManager manager = new LinearLayoutManager(this);        //LayoutManager用于指定RecyclerView布局(此处使用LinerlayoutManager,实现与ListView类似的效果        recyclerView.setLayoutManager(manager);                               //将LayoutManager设置到RecyclerView中        FruitAdapter adapter = new FruitAdapter(fruitList);             //将水果数据传入到FruitAdapter的构造函数中        recyclerView.setAdapter(adapter);                               //完成适配器设置    }    private void initFruits() {        for (int i = 0; i < 2; i++) {            Fruit apple0 = new Fruit("apple0");            fruitList.add(apple0);            Fruit apple1 = new Fruit("apple1");            fruitList.add(apple1);            Fruit apple2 = new Fruit("apple2");            fruitList.add(apple2);            Fruit apple3 = new Fruit("apple3");            fruitList.add(apple3);            Fruit apple4 = new Fruit("apple4");            fruitList.add(apple4);            Fruit apple5 = new Fruit("apple5");            fruitList.add(apple5);            Fruit apple6 = new Fruit("apple6");            fruitList.add(apple6);        }    }}
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 冲风了头蒙怎么办 不小心把腰扭了怎么办 白衣服发霉有小黑点怎么办 佛肚竹的枝叶都枯了怎么办 山竹一天吃多了怎么办 水养竹子叶子发黄怎么办 龙竹的竹杆黄了怎么办 散尾竹叶子发黑怎么办 给姐姐打工不发工资怎么办? 水培红掌叶子发黄怎么办 盆竹的叶尖发黄怎么办 养富贵竹水里怎么生小虫怎么办 盆栽金银花叶子全部落掉怎么办 荷花竹根部烂了怎么办 水培绿萝叶子发黄怎么办 大早上的公鸡老打鸣怎么办 紫吊兰叶子变绿怎么办 芙桑花叶子发黄怎么办 长春花长得太高怎么办 四季梅叶子蔫了怎么办 吸财树叶子蔫了怎么办 民族团结手抄报间单有漂亮怎么办 鹦鹉尾巴毛掉了怎么办 羊绒衫领子打太大了怎么办 内裤洗了还有一股味道怎么办 月经下不来内裤上总有脏东西怎么办 夏天外衣薄露出内衣怎么办 金毛体味很重怎么办 直筒连衣裙太短怎么办 托班社会下雨了怎么办 托班下雨了怎么办教案 吃鸡界面有鼠标怎么办 老年机成英语了怎么办 手机成了英语了怎么办 塑料袋融化粘到衣服上怎么办 厕所被卫生纸堵了怎么办 钻石画的胶不粘了怎么办 客厅沙发选大了怎么办 连衣裙腰大了怎么办呀 憋尿后出现尿急尿涨怎么办 脚有酸酸的味道怎么办