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

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. protobuff java 包编译(Windows)

    google probuffer的强大,很多人都知道,但是官方的source 里是没有jar下载,唯有源码下载,故需自己编译得到jar. java 的jar的编译采用maven 编译的,因此需先构建m ...

  2. 分布式缓存系统 Memcached 状态机之网络数据读取与解析

    整个状态机的基本流程如下图所示,后续分析将按该流程来进行. 接上节分解,主线程将接收的连接socket分发给了某工作线程,然后工作线程从任务队列中取出该连接socket的CQ_ITEM,开始处理该连接 ...

  3. Maria数据库

    项目上要进行数据库选型,业务上来讲,数据是非常结构化的数据,使用传统关系数据库更适合:另外项目采用微服务框架,每个服务的数据库应该尽可能轻量级, 最后考虑Maria数据库. MariaDB简介: Ma ...

  4. php使用substr中文乱码问题

    周天的时候对网站 https://www.javasec.cn 进行bug修复和功能更新,其中遇到一个比较有意思的小问题: 问题: 网站的置顶推荐中,有文本略缩.但是无论怎么修改最后一个字符始终现实为 ...

  5. mul 指令

    mul 是乘法指令 两个相乘的数:两个相乘的数,要么都是 8 位,要么都是 16 位. 如果是 8 位,一个默认放在 AL 中,另一个放在 8 位寄存器或内存字节单元中: 如果是 16 位,一个默认在 ...

  6. js操作serviceWorker缓存静态文件

    js操作serviceWorker缓存静态文件 serviceWorker的作用就是用来做离线应用的,在手机端程序中用的较多 先看下效果 index.html <!DOCTYPE html> ...

  7. Python可执行对象——exec、eval、compile

    Python提供的调用可执行对象的内建函数进行说明,涉及exec.eval.compile三个函数.exec语句用来执行存储在代码对象.字符串.文件中的Python语句,eval语句用来计算存储在代码 ...

  8. C# XML 操作

    1 xml文件格式 <?xml version="1.0" encoding="utf-8"?> <userInfo> <user ...

  9. Xamarin官方示例代码无法部署,提示已跳过部署解决方法

    最近利用Visual Studio 2017学习Android开发.主要是通过Xamarin官方的文档进行的.官方的入门指导提供了很多的示例代码.但是下载之后,调试运行的时候,总是无法部署到虚拟机上. ...

  10. bootstrap中的data-dismiss属性

    <button type="button" class="btn default" data-dismiss="modal">关 ...