`

RecyclerView入门

 
阅读更多

android studio 1.2.1.1

 

首先配置下v7的库

dependencies {
    compile 'com.android.support:recyclerview-v7:22.2.0'
}
public class RecyclerViewActivity extends Activity {

    private RecyclerView recycler;
    private RecyclerView.LayoutManager mLayoutManager;

    private List<HashMap<String,Object>> data;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.recyclerview);
        recycler = (RecyclerView) findViewById(R.id.recycler);

        //创建一个布局管理器
        mLayoutManager = new LinearLayoutManager(this);
        //设置布局管理器
        recycler.setLayoutManager(mLayoutManager);

        data = new ArrayList<>();

        //初始化数据
        for(int i = 0 ; i < 60 ;i++){
            HashMap<String,Object> hashMap = new HashMap<>();
            if(i%3 == 0){
                hashMap.put("imageView",R.drawable.logo_wechat);
            }else if(i%3 == 1){
                hashMap.put("imageView",R.drawable.logo_twitter);
            }else if(i%3 == 2){
                hashMap.put("imageView",R.drawable.logo_whatsapp);
            }
            hashMap.put("textView","第" + i + "个");
            data.add(hashMap);
        }

        //设置Adapter
        recycler.setAdapter(new MyAdapter(data));
    }

    class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder>{

        private List<HashMap<String,Object>> datas;
        private View view;
        public MyAdapter(List<HashMap<String,Object>> datas){
            this.datas = datas;
        }

        @Override
        public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
            //初始化布局
            view = LayoutInflater.from(RecyclerViewActivity.this).inflate(R.layout.recycle_item,null);
            return new ViewHolder(view);
        }

        @Override
        public void onBindViewHolder(ViewHolder vh, int i) {
            // 绑定数据到ViewHolder上
            HashMap<String,Object> hashMap = datas.get(i);
            vh.imageView.setImageResource(Integer.valueOf(hashMap.get("imageView").toString()));
            vh.textView.setText(hashMap.get("textView").toString());
        }

        @Override
        public int getItemCount() {
            return datas.size();
        }

        //实现ViewHolder与view分离
        class ViewHolder extends RecyclerView.ViewHolder{
            ImageView imageView;
            TextView textView;

            public ViewHolder(View itemView) {
                super(itemView);
                imageView = (ImageView) itemView.findViewById(R.id.imageView);
                textView = (TextView) itemView.findViewById(R.id.textView);
            }
        }
    }
}
 
activity布局
<?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">


    <android.support.v7.widget.RecyclerView
        android:id="@+id/recycler"
        android:scrollbars="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>
</LinearLayout>

item布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal" android:layout_width="match_parent"
    android:layout_height="match_parent">

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/imageView"/>
    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text=""/>
</LinearLayout>
 
分享到:
评论

相关推荐

    Android-RecyclerView基础写法简单实现

    在Android开发中,RecyclerView是一个非常重要的组件,它用于展示可滚动的列表,具有高效的数据管理和灵活的布局管理器。RecyclerView是对ListView的优化和扩展,旨在提高性能和用户体验。本篇文章将详细讲解Android...

    RecyclerViewDemo

    提供的"RecyclerViewDemo"项目是一个简单的RecyclerView入门示例,它展示了如何创建一个基本的RecyclerView,同时添加点击事件。通过查看该项目的代码,我们可以学习到如何配置RecyclerView的基本结构,以及如何实现...

    Android应用开发中RecyclerView组件使用入门教程

    在Android应用开发中,RecyclerView是一个强大的列表视图组件,尤其适用于展示大量数据并需要高效滚动性能的情况。自Android 5.0(Lollipop)引入Material Design设计语言以来,RecyclerView成为开发者首选的列表...

    完整的android 安卓入门demo

    【Android 安卓入门Demo详解】 Android 是一种广泛使用的开源操作系统,主要应用于移动设备,如智能手机和平板电脑。本入门Demo提供了全面的学习资源,涵盖了Android开发中的基础元素和关键概念,帮助初学者快速...

    SwipeRefreshLayout结合RecyclerView实现下拉刷新和滑动加载更多

    SwipeRefreshLayout结合RecyclerView实现下拉刷新和滑动加载更多 现在很多界面都是要求,下拉刷新,列表项目更多的时候,滑动加载更多,就像微信朋友圈一样,下拉...代码中有详细注释,希望对刚入门的初学 者有所帮助

    Android-CardViewRecyclerView:Android 上的 RecyclerView 和 CardView 入门

    Tuts+ 教程:Android 上的 RecyclerView 和 CardView 入门 讲师:Hathibelagal Ashraff Android Lollipop 引入了两个新的小部件,RecyclerView 和 CardView。 在本教程中,您将学习如何使用这些小部件快速创建外观...

    SwipeRefreshLayout结合RecyclerView实现下拉刷新和向上滑动“加载更多”功能

    SwipeRefreshLayout结合RecyclerView实现下拉刷新和向上滑动“加载更多”功能 现在很多界面都是要求,下拉刷新,列表项目多的时候,滑动加载更多,就像微信朋友...代码里都有详细注释,希望对和我一样刚入门的有所帮助

    Android中RecyclerView点击Item设置事件

    在上一篇Android RecylerView入门教程中提到,RecyclerView不再负责Item视图的布局及显示,所以RecyclerView也没有为Item开放OnItemClick等点击事件,这就需要开发者自己实现。博客最下面有Demo程序运行动画。 奉上...

    0基础Android入门项目

    在“0基础Android入门项目”中,初学者可以学习到Android开发的基本概念和技术,这个项目涵盖了几个关键的Android组件和视图。以下是该项目涉及的主要知识点: 1. **登录功能**:登录界面是许多应用程序的基础部分...

    一个Android库,可在RecyclerView中快速流畅地滚动。-Android开发

    在build.gradle中的示例入门:存储库{jcenter()}依赖项{compi SnappySmoothScroller一个Android库,可在RecyclerView中进行快速平滑的滚动。 在build.gradle中的示例入门:存储库{jcenter()}依赖项{编译'...

    Google Android开发入门与实战(pdf和源代码)

    此外,还要学习如何处理用户输入,使用Adapter将数据绑定到ListView、RecyclerView等可滚动视图,以及如何实现动画效果。 Android应用与服务器通信通常采用HTTP/HTTPS协议,涉及网络请求库如OkHttp、Retrofit。JSON...

    Jetpack架构组件从入门到精通

    《Jetpack架构组件从入门到精通》是一本深入解析Android开发中Jetpack架构组件的教程。Jetpack是Google推出的一套全面的工具包,旨在简化Android应用开发,提高代码质量和可维护性。这本书将带你逐步了解和掌握这个...

    Android开发入门与实战代码

    最后,将这些信息展示在ListView或RecyclerView中,提供用户友好的界面。这一过程能帮助开发者熟悉Android与网络交互的能力,以及数据处理和UI设计。 其次,我们关注的是Android常用控件的使用。Android SDK提供了...

    MultiType:更轻松,更灵活地为Android RecyclerView创建多种类型

    多类型 为Android RecyclerView创建多种类型更容易,更灵活。 以前,当我们需要开发复杂的...入门 在您的build.gradle : 多型已经重建基于 。 如果您仍在使用android支持库,请使用me.drakeet.multitype:multitype:

    Kotlin入门Demo

    在这个入门示例中,重点聚焦于如何使用Kotlin来构建一个包含`RecyclerView`、`Adapter`以及`CardView`的Android应用。 Kotlin是一种由JetBrains开发的静态类型编程语言,它被广泛用于Android应用开发,因为它具有...

    Android从入门到实战 下载链接

    此外,还要学习使用Fragment来管理多屏幕适配,以及使用Adapter来连接数据与视图,如ListView和RecyclerView。 进入实战阶段,你需要熟悉Android的各种API,包括传感器、网络通信、多媒体处理、数据库SQLite等。...

    RecyclerView2

    Android RecyclerView示例 该示例演示了如何使用RecyclerView通过...入门 本示例使用Gradle构建系统。 要构建此项目,请使用“ gradlew build”命令或在Android Studio中使用“导入项目”。 支持 堆栈溢出: :

    安卓 入门到精通 开发文档

    此外,文档还会涉及用户界面设计,包括Material Design设计规范,以及使用ConstraintLayout、RecyclerView等组件创建响应式界面。同时,会讲解如何利用Intent进行组件间的通信,以及如何处理用户的输入事件。 在...

Global site tag (gtag.js) - Google Analytics