Listview学习(二)
来源:互联网 发布:ubuntu更新命令 编辑:程序博客网 时间:2024/06/05 05:25
RecyclerView学习
经过之前的学习,对listview的简单实用已经有所了解了。现在来学习一下RecyclerView。顾名思义,recyclerview可以回收移出界面的item,并且在需要时再次显示(具体的实现原理见http://blog.csdn.net/lylodyf/article/details/52846602)。其基本原理与Listview相似,下面先了解其用法。下面是主函数和adapter以及布局的代码:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.bupt.markfavor.demo0914recyclerview.MainActivity"> <android.support.v7.widget.RecyclerView android:id="@+id/recycler_view" android:layout_width="match_parent" android:layout_height="match_parent"/></LinearLayout>
布局里只有一个RecyclerView控件,需要说明的是,要使用RecyclerView需要先在build.gradle(app)当中添加依赖compile ‘com.android.support:recyclerview-v7:25.3.1’。
package com.bupt.markfavor.demo0914recyclerview;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.support.v7.widget.LinearLayoutManager;import android.support.v7.widget.RecyclerView;public class MainActivity extends AppCompatActivity { private RecyclerView myRecyclerView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); myRecyclerView = (RecyclerView) findViewById(R.id.recycler_view); LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this); myRecyclerView.setLayoutManager(linearLayoutManager); String[]dataset=new String[100]; for (int i=0;i<dataset.length;i++){ dataset[i]="item"+i; } RecyclerAdapter recyclerAdapter = new RecyclerAdapter(dataset); myRecyclerView.setAdapter(recyclerAdapter); }}
上边代码的含义:自定义myRecyclerView,通过findviewbyid找到控件;自定义LinearLayoutManager,根据官方文档,其作用是协助recyclerview实现对item的缓存,帮助实现纵向和横向滚动;将LinearLayoutManager绑定在myRecyclerView上;定义一个包括100个元素的一维数组;将数组和adapter绑定,最后把adapter和myRecyclerView绑定。下面说明自定义adapter的过程。
package com.bupt.markfavor.demo0914recyclerview;import android.support.v7.widget.RecyclerView;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.TextView;/** * Created by markfavor on 2017/9/14. */public class RecyclerAdapter extends RecyclerView.Adapter<RecyclerAdapter.Viewholder>{ private String[] mydataset; public RecyclerAdapter(String[] dataset) { super(); mydataset=dataset; } @Override public Viewholder onCreateViewHolder(ViewGroup parent, int viewType) { View view = LayoutInflater.from(parent.getContext()) .inflate(android.R.layout.simple_list_item_1,null); Viewholder viewholder = new Viewholder(view); return viewholder; } @Override public void onBindViewHolder(Viewholder holder, int position) { holder.myTextView.setText(mydataset[position]); } @Override public int getItemCount() { return mydataset.length; } static class Viewholder extends RecyclerView.ViewHolder{ TextView myTextView; public Viewholder(View itemView) { super(itemView); myTextView = (TextView) itemView; } }}
自定义adapter
1.继承的是RecyclerView.Adapter
阅读全文
0 0
- ListView学习(二)
- Listview学习(二)
- Android-ListView的学习(二)
- ListView学习实例二
- ListView学习(二)-ListView缓存机制
- C# DataGridView控件与ListView控件的对比学习(二):ListView控件学习
- Android学习笔记(二十):回归简单的ListView
- ListView学习笔记(二)—— ConvertView
- Android学习笔记(四二):SQLite、ListView、ContextMenu
- Android学习笔记(二十):回归简单的ListView
- Android学习笔记(四二):SQLite、ListView、ContextMenu
- Android学习笔记(四二):SQLite、ListView、ContextMenu .
- 学习(二)ListView的几种实现方式
- 【学习笔记】"ListView滑动删除 ,仿腾讯QQ"(二)
- Android学习笔记(二)——两个ListView联动
- ListView详解(二)
- ListView 详解(二)
- Android中Listview(二)--圆角listview
- linux 系统下awk命令的使用
- 20170914apache专用帐号的设置
- SDUT 1197 约瑟夫问题
- Java高并发编程:线程锁技术
- javascript添加表格
- Listview学习(二)
- 浅谈深度学习中的激活函数
- C++虚函数、纯虚函数
- 【系统学习SpringBoot】SpringBoot初遇邮件服务
- Java垃圾回收机制
- ASP+Access注入
- 环境变量
- 蓝桥杯:n的阶乘java实现
- iOS图片拉伸技巧