前面一个说了怎么把这个包引用进来,这一节说怎么做一个简单的例子出来,我也是照着别人的例子写的,然后慢慢改就行了,做好的效果如下图

1.在我们的activity_main中把recyclerview填加进来.

<android.support.v7.widget.RecyclerView
android:id="@+id/recy_list"
android:dividerHeight="1dp"
android:layout_width="match_parent"
android:layout_height="match_parent" />

然后在相对应的java中增加引用

import android.support.v7.widget.RecyclerView;

  

2. 编写一个recyclerview使用的xml文件,直接新建一个layout xml file就可以了,我的叫item_view.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#00bbcc"> <TextView
android:layout_width="wrap_content"
android:layout_height="40dp"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="Medium Text"
android:id="@+id/txt_xs"
android:layout_alignParentLeft="true"
android:gravity="center_vertical|center_horizontal" />
<TextView
android:layout_width="120dp"
android:layout_height="40dp"
android:id="@+id/txt_msg"
android:text="Medium Text"
android:layout_alignParentRight="true"
android:gravity="center_vertical|center_horizontal"
/> </RelativeLayout>

出来的布局样子就是左右分开,左边显示文件名称,右边显示文件状态,效果看上面的图.

3.编写一个关于文件的实体类,只需要有个get方法就行了.我的叫filelist.java

public class filelist {
private String Name; //文件名称
private String Zt; //状态 public filelist(){ }
public filelist(String name,String zt){
this.Name=name;
this.Zt=zt;
}
public String getName(){
return Name;
}
public String getZt(){
return Zt;
}
}

这个主要用于存放每一行的数据,可以按需要增加,一个和两个有区别,但是两个和五个没啥区别,一个你可以用string,两个就不行了.

4. 编写数据适配器,关键的就是这个地方了,原来的例子作者传入的是个list<string>,只能有一个项,为了传入多个项,我们定义了filelist,在这个地方传入了.通过getname,getzt来获取里面的值,加入了隔行变色,其实也可以加入按内容变色,比如文件的状态,如是已阅读,变成一种色,未阅读另一种颜色,在onBindViewHolder中通过判断da.getZt()的值就行了,

import android.content.Context;
import android.graphics.Color;
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 user on 2017-07-26.
*/
public class myRecycleradatper extends RecyclerView.Adapter<myRecycleradatper.MyViewHolder> {
private List<filelist> mDatas;
private Context mContext;
private LayoutInflater inflater; public myRecycleradatper(Context context, List<filelist> datas){
this. mContext=context;
this. mDatas=datas;
inflater=LayoutInflater. from(mContext);
} @Override
public int getItemCount() {
return mDatas.size();
}
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = inflater.inflate(R.layout.item_view,parent, false);
MyViewHolder holder= new MyViewHolder(view);
return holder;
} @Override
public void onBindViewHolder(MyViewHolder holder, final int position) {
filelist da=mDatas.get(position);
if(position%2==0){
//holder.tv.setBackgroundColor(Color.BLUE);
holder.v.setBackgroundColor(Color.GRAY);
}
holder.tv.setText(da.getName());
holder.msg.setText(da.getZt());
} class MyViewHolder extends RecyclerView.ViewHolder {
TextView tv;
TextView msg;
View v;
public MyViewHolder(View view) {
super(view);
tv=(TextView) view.findViewById(R.id.txt_xs);
msg=(TextView)view.findViewById(R.id.txt_msg);
v=view;
} }
}

  

5. 在我们的主界面中装配好数据,然后放入自定义的数据适配器中,为了简单,都是本地数据

private List<filelist> mDatas;
private myRecycleradatper recycleAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); mDatas = new ArrayList<filelist>();
filelist fl;
String zt;
for ( int i=0; i < 40; i++) {
if (i%2==0){
zt="已阅读";
}else{;
zt="未阅读";
}
fl=new filelist("item"+i,zt);
mDatas.add(fl);
} recycleAdapter=new myRecycleradatper(this,mDatas);
RecyclerView recyclerView=(RecyclerView) findViewById(R.id.recy_list);
LinearLayoutManager layoutManager = new LinearLayoutManager(this );
recyclerView.setLayoutManager(layoutManager);
//如果可以确定每个item的高度是固定的,设置这个选项可以提高性能
recyclerView.setHasFixedSize(true);
//创建并设置Adapter
recyclerView.setAdapter(recycleAdapter);
recyclerView.setItemAnimator(new DefaultItemAnimator()); }
}

  

以前我们在listview中大家使用的较多的是list<map<string,object>>这个,也可以换成自定义的实体类试试,如果在界面布局那一步出了问题,那就得看看你的目标版本和最小版本了.还有主题,默认的主题出不来,需要换一个别的.

我是小白二把刀,欢迎一起交流.

android studio中使用recyclerview小白篇(二)的更多相关文章

  1. android studio中使用recyclerview小白篇(四)

    经过努力,我们的recyclerview终于可以使用了,但是装配上真实的数据后,发现左边的内容太长了,如果超过一行,左边内容和右边的内容竟然重叠在一起了,好是让人心塞啊,如下图 后来发现设置左边tex ...

  2. android studio中使用recyclerview小白篇(三)

    继续接着昨天的来,昨天终于弄好了一个例子,但是那个没有点击事件, 需要自己添加,参照别人的例子,弄了个比较简单的,主要是改动myRecycleradatper.java中的部分. 增加如下的接口: / ...

  3. android studio中使用recyclerview小白篇(一)

    本人就是小白,昨天在使用listview时,看到说有更好的控件出来了,在V7包中,需要SDK21及以上,那就试着用用吧,今天试了一天,终于弄的能简单使用了,分享一下. 怎么导入这个recycleyvi ...

  4. android studio中使用recyclerview制作个显示考勤打卡的日历来

    1. 用户在app端选择个日期就能查询这个月的考勤打卡信息,并以日历上标注不同的颜色来显示给用户,当然这个日历是recyclerview做出来的,只是每行显示7个,表示一周的七天. 2. 员工考勤打卡 ...

  5. Android studio 中引用jar的其实是Maven?(二)

    上一篇:Android studio 中引用jar的其实是Maven?(一) 搭建maven仓库: 去了解一个新的事物的时候,最好的方式就是去使用它.例如去了解一座城市的时候,最好的方式就是乘坐公共交 ...

  6. 【Android Studio安装部署系列】二十四、Android studio中Gradle插件版本和Gradle版本关系

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 概述 在从Android Studio3.0.0版本升级到Android Studio3.0.1版本的时候,出现了一个问题,需要升级Gra ...

  7. Android studio 中引用jar的其实是Maven?(一)

    由于Studio比eclipse多了一步对工程构建的步骤,即为build.gradle这个文件运行,因此其引入第三方开发jar包与lib工程对比Eclipse已完成不同,引入第三方jar与lib工程显 ...

  8. Android IPC机制(三)在Android Studio中使用AIDL实现跨进程方法调用

    在上一篇文章Android IPC机制(二)用Messenger进行进程间通信中我们介绍了使用Messenger来进行进程间通信的方法.可是我们能发现Messenger是以串行的方式来处理client ...

  9. android studio 中移除module和恢复module

    一.移除Android Studio中module 在Android Studio中想要删除某个module时,在Android Studio中选中module,右键发现没有delete,如图: An ...

随机推荐

  1. GO数组和切片

    数组Array 定义数组的格式:var <varName>[n]<type>,n>0 数组长度也是类型的一部分,因此具有不同长度的数组为不同类型, 不同类型的不能相互赋值 ...

  2. Mvn+Jetty启动项目

    这里要注意,Mvn加jetty启动项目,主要用到的是Maven的jetty插件,和你下的Jetty服务器没什么关系. 我的运行环境是jdk1.7,Eclipse-mars,Maven是Eclipse自 ...

  3. HTML简历

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  4. Netty实现简单HTTP服务器

    netty package com.dxz.nettydemo.http; import java.io.UnsupportedEncodingException; import io.netty.b ...

  5. DB2的安装

    jiangxin@db01:~$ su – root #切换到root用户 密码: root@db01:~# uname -a #查看内核和操作系统信息 Linux db01 4.4.0-66-gen ...

  6. log4net 使用总结- (1)在ASP.NET MVC 中使用

    1. 去官网下载log4net.dll,增加引用到站点下(你也可以通过nuget 安装) http://logging.apache.org/log4net/download_log4net.cgi ...

  7. 什么是AJAX?AJAX的原理

    AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML)通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新.这意味着可以在不重 ...

  8. Linux quota命令参数及用法详解---Linux磁盘配额限制设置和查看命令

    功能说明:显示磁盘已使用的空间与限制. 语 法:quota [-quvV][用户名称...] 或 quota [-gqvV][群组名称...] 补充说明:执行quota指令,可查询磁盘空间的限制,并得 ...

  9. Pandas统计计算和描述

    Pandas统计计算和描述 示例代码: import numpy as np import pandas as pd df_obj = pd.DataFrame(np.random.randn(5,4 ...

  10. SQL Where 字符串拼接

    ) set @s='1,2,3' --法一: --法二: exec('select * from tb where id in ('+@s+')')