ListView是一种用于列表显示数据内容的控件,它可以通过适配器实现对于数据的列表显示,而RecyclerView是对于ListView优化后的列表数据显示控件。

个人对于List的使用经历多半在新浪微博集成的时候使用,故这里仅仅是记载RecyclerView的使用方法,

而对于ListView的方法可在aliCamera项目中,要想查找可直接查找自己以前写过的源码!

RecyclerView的使用方法:

1.在要使用RecyclerView的项目中,打开open module setting 选择APP的Dependencies选项,选择添加Library Dependency选项,添加RecyclerView的包

2.在对应的Activity中添加对应的代码

具体的代码实现:

package andrew.com.custompaintdemo;

import android.net.Uri;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.ViewGroup;
import android.widget.TextView; public class MainActivity extends AppCompatActivity implements BlankFragment.OnFragmentInteractionListener { private RecyclerView rv; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); rv = new RecyclerView(this);                //新建一个RecyclerView对象
rv.setLayoutManager(new LinearLayoutManager(this));  //设置这个RecyclerView的布局为线性布局
setContentView(rv);                     //将RecyclerView作为界面 rv.setAdapter(new RecyclerView.Adapter() {          //设置适配器 class ViewHolder extends RecyclerView.ViewHolder{    //这是一个用于设计RecyclerView的界面元素的类 private TextView tv; public ViewHolder(TextView itemView) {
super(itemView);
tv = itemView;
} public TextView getTv() {
return tv;
}
}
                                //以下部分与ListView类似,简单易懂
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
return new ViewHolder(new TextView(getApplicationContext()));
} @Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
ViewHolder h = (ViewHolder) holder;
h.getTv().setTextColor(getResources().getColor(R.color.colorAccent));
h.getTv().setText("item"+position);
} @Override
public int getItemCount() {
return 100;
}
}); } }

使用XML资源文件的配置方法:

1.先设置自定义adapter,继承RecylerView.adapter,绑定XML file,设置适配方法

具体代码:

package andrew.com.custompaintdemo;

import android.app.Activity;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView; /**
* Created by Andrew on 2016/7/26.
*/
class MyAdapter extends RecyclerView.Adapter { private Activity mainActivity; public MyAdapter(Activity mainActivity) {
this.mainActivity = mainActivity;
} class ViewHolder extends RecyclerView.ViewHolder{ private View root;
private TextView tv1,tv2; public ViewHolder(View view) {
super(view);
root = view;
        //绑定布局控件的方法
tv1 = (TextView) root.findViewById(R.id.tv1);
tv2 = (TextView) root.findViewById(R.id.tv2);
} public TextView getTv1() {
return tv1;
} public TextView getTv2() {
return tv2;
}
} @Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {         //精华只在这一句!精华只在这一句!精华只在这一句!
return new ViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.list,null));
} @Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
ViewHolder h = (ViewHolder) holder;
h.getTv1().setTextColor(mainActivity.getResources().getColor(R.color.colorAccent));
h.getTv1().setText("item" + position);
h.getTv2().setTextColor(mainActivity.getResources().getColor(R.color.colorAccent));
h.getTv2().setText("content"); } @Override
public int getItemCount() {
return 100;
}
}

XML的配置情况:

<?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/tv1"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tv2"/>
</LinearLayout>

在Activity中可以通过一些配置来改变界面的显示状况:

rv.setLayoutManager(new GridLayoutManager(this,4));  //表格布局形式

rv.setLayoutManager(new LinearLayoutManager(this,LinearLayoutManager.HORIZONTAL,TRUE))  //水平布局形式

ListView的基本使用方法和RecyclerView的基本使用方法的更多相关文章

  1. java static成员变量方法和非static成员变量方法的区别

    这里的普通方法和成员变量是指,非静态方法和非静态成员变量首先static是静态的意思,是修饰符,可以被用来修饰变量或者方法. static成员变量有全局变量的作用       非static成员变量则 ...

  2. final方法,abstract方法和abstract类,native方法

    final方法 1.为了确保某个函数的行为在继承过程中保持不变,并且不能被覆盖(override),可以使用final方法. 2.为了效率上的考虑,将方法声明为final,让编译器对此方法的调用进行优 ...

  3. 数组的foreach方法和jQuery中的each方法

    /* * 数组的forEach方法: * 1.返回给回调的参数先是值,然后是下标 * 2.回调函数执行时内部的this指向window * */ /*var arr = [1,2,3,4,5]; ar ...

  4. 详解Integer.toString(int i)方法和String.valueOf(int i)方法

    通过查看String类的源码: public static String valueOf(int i) { return Integer.toString(i); } 我们可以看到,String.va ...

  5. java static成员变量方法和非static成员变量方法的区别 ( 二 )

    原创文章,未经作者允许,禁止转载!!! 静态成员变量不用new对象,在类加载的过程中就已经初始化存放在数据区域,静态成员变量是类和所有对象共有的,类和对象都可以改变它的值,每一次改变值之后,静态成员变 ...

  6. OC语言description方法和sel

    OC语言description方法和sel 一.description方法 Description方法包括类方法和对象方法.(NSObject类所包含) (一)基本知识 -description(对象 ...

  7. 李洪强iOS开发之OC语言description方法和sel

    OC语言description方法和sel 一.description方法 Description方法包括类方法和对象方法.(NSObject类所包含) (一)基本知识 -description(对象 ...

  8. ListView为什么用setOnItemClick这个方法和onTouch这个方法有冲突

    因为如果onTouch方法中返回true的话,这次事件就被ListView中的item控件消费了,所以不会执行ListVIew的setOnItemClick这个方法了,如果onTouch方法返回fal ...

  9. ASP.NET Core 中文文档 第二章 指南(4.10)检查自动生成的Detail方法和Delete方法

    原文 Examining the Details and Delete methods 作者 Rick Anderson 翻译 谢炀(Kiler) 校对 许登洋(Seay).姚阿勇(Mr.Yao) 打 ...

随机推荐

  1. C# 文件上传下载功能实现 文件管理引擎开发

    Prepare 本文将使用一个NuGet公开的组件技术来实现一个服务器端的文件管理引擎,提供了一些简单的API,来方便的实现文件引擎来对您自己的软件系统的文件进行管理. 在Visual Studio ...

  2. springmvc简单集成shiro

    前言: 有天和同事聊天, 谈起权限管理, 他说他有个同事用shiro用的很溜. 正好现在有个管理平台项目, 有权限控制的需求, 因此想借此机会研究一番. 本文主要简单讲解一下对shiro的一些认识, ...

  3. 【Keil5 MDK】armar工具的基本用法(armar --help)

    ARM Librarian, 5.03 [Build 76] - archive creation and maintenance tool Command format: armar options ...

  4. 【ShareCode】不错的技术文章 -- 如何使用异或(XOR)运算找到数组中缺失的数?

    如何使用异或(XOR)运算找到数组中缺失的数? 今天给大家分享一篇关于使用XOR(异或)运算找到数组中缺失的数的问题. 在一次Javascript面试中,有这么一个问题: 假设有一个由0到99(包含9 ...

  5. 【java多线程】队列系统之DelayQueue源码

    一.延迟队列 延迟队列,底层依赖了优先级队列PriorityBlockingQueue 二.延迟队列案例 (1)延迟队列的任务 public class DelayTask implements De ...

  6. oracle-ords

    oracle rest data service ORDS Perforce    adv. 一定,必须:必然地pagination    n. 标记页数:页码,分页Online documentat ...

  7. Day 13 可迭代对象,迭代器对象,for循环迭代,生成器对象,枚举对象

    一.迭代器概念:# 器:包含了多个值的容器# 迭代:循环反馈(一次从容器中取出一个值)# 迭代器:从装有多个值的容器中一次取出一个值给外界# ls = 'abcdef'ls = [1, 2, 3, 4 ...

  8. [zz]蟑螂蚂蚁蚊子已不住在我家了!这个方法100%见效…

    http://mt.sohu.com/20150324/n410238511.shtml 蚂蚁怕酸,蚊子怕辣,蟑螂怕香.在下给各位提供一个不杀生又能驱赶蚂蚁.蚊子.蟑螂的妙法. 一.蚂蚁怕酸味 家里的 ...

  9. 半分钟学会使用markdown基本语法

    想看文字版的看这个吧https://www.jianshu.com/p/191d1e21f7ed

  10. 1131(★、※)Subway Map

    思路:DFS遍历 #include <iostream> #include <map> #include <vector> #include <cstdio& ...