1,RecyclerViewFrgmt

  1. import com.example.adapter.R;
  2.  
  3. import android.app.Fragment;
  4. import android.os.Bundle;
  5. import android.support.v7.widget.LinearLayoutManager;
  6. import android.support.v7.widget.RecyclerView;
  7. import android.view.LayoutInflater;
  8. import android.view.View;
  9. import android.view.ViewGroup;
  10.  
  11. public class RecyclerViewFrgmt extends Fragment {
  12.  
  13. RecyclerView mRecyclerView;
  14. RecyclerAdapter mAdapter;
  15. String[] dataset;
  16.  
  17. @Override
  18. public View onCreateView(LayoutInflater inflater, ViewGroup container,
  19. Bundle savedInstanceState) {
  20. View v = inflater.inflate(R.layout.frgmt_recycler_view_adapter, container,false);
  21. mRecyclerView = (RecyclerView) v.findViewById(R.id.recyclerView);
  22. LinearLayoutManager layoutManager = new LinearLayoutManager(getActivity());
  23. // layoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);//可以设置recyler view 为横向
  24. // 设置布局管理器
  25. mRecyclerView.setLayoutManager(layoutManager);
  26.  
  27. dataset = ];
  28. ; i < dataset.length; i++){
  29. dataset[i] = "item" + i;
  30. }
  31. mAdapter = new RecyclerAdapter(dataset);
  32. mRecyclerView.setAdapter(mAdapter);
  33. return v;
  34. }
  35. }

2,RecyclerAdapter

  1. import com.example.adapter.R;
  2. import android.support.v7.widget.RecyclerView;
  3. import android.support.v7.widget.RecyclerView.Adapter;
  4. import android.view.View;
  5. import android.view.ViewGroup;
  6. import android.widget.Button;
  7. import android.widget.ImageView;
  8. import android.widget.TextView;
  9.  
  10. public class RecyclerAdapter extends Adapter<RecyclerAdapter.ViewHolder> {
  11.  
  12. private String[] mDataset;//数据
  13.  
  14. //关键部分,每个item的holder
  15. public static class ViewHolder extends RecyclerView.ViewHolder {//
  16. public ImageView mIcon;
  17. public TextView mContent;
  18. public Button mBtn;
  19. public ViewHolder(View itemView) {
  20. 20 super(itemView);
  21. 21 mIcon = (ImageView) itemView.findViewById(R.id.recycler_view_icon);
  22. 22 mContent = (TextView) itemView.findViewById(R.id.recycler_view_content);
  23. 23 mBtn = (Button) itemView.findViewById(R.id.recycler_view_btn);
  24. }
  25. }
  26.  
  27. public RecyclerAdapter(String[] dataset) {
  28. mDataset = dataset;
  29. }
  30.  
  31. @Override
  32. public int getItemCount() {
  33. return mDataset.length;
  34. }
  35.  
  36. //把数据和 view holder绑定
  37. @Override
  38. public void onBindViewHolder(final ViewHolder holder, final int position) {
  39. holder.mContent.setText(mDataset[position]);
  40. holder.mBtn.setText("button" + position);
  41. holder.mBtn.setOnClickListener(new View.OnClickListener() {
  42. @Override
  43. public void onClick(View v) {
  44. System.out.println("btn");
  45. holder.mContent.setText("button" + position);
  46. }
  47. });
  48. }
  49. //创建一个view holder
  50. @Override
  51. public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
  52. //1,inflater一个view
  53. View view = View.inflate(parent.getContext(),R.layout.recycler_view_item, null);
  54. //2,将view传给holder
  55. ViewHolder holder = new ViewHolder(view);
  56. return holder;
  57. }
  58.  
  59. }

3,使用recyclerview的主布局 frgmt_recycler_view_adapter.xml

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:layout_width="match_parent"
  4. android:layout_height="match_parent"
  5. android:orientation="vertical" >
  6.  
  7. <android.support.v7.widget.RecyclerView
  8. android:id="@+id/recyclerView"
  9. android:layout_width="match_parent"
  10. android:layout_height="match_parent" />
  11.  
  12. </LinearLayout>

4,每个item的布局  recycler_view_item.xml

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:layout_width="match_parent"
  4. android:layout_height="match_parent"
  5. android:orientation="horizontal" >
  6.  
  7. <ImageView
  8. android:id="@+id/recycler_view_icon"
  9. android:layout_width="wrap_content"
  10. android:layout_height="wrap_content"
  11. android:layout_weight="1"
  12. android:src="@drawable/ic_child2" />
  13.  
  14. <TextView
  15. android:id="@+id/recycler_view_content"
  16. android:layout_width="wrap_content"
  17. android:layout_height="wrap_content"
  18. android:layout_weight="1"
  19. android:text="TextView" />
  20.  
  21. <Button
  22. android:id="@+id/recycler_view_btn"
  23. android:layout_width="wrap_content"
  24. android:layout_height="wrap_content"
  25. android:layout_weight="1"
  26. android:text="Button" />
  27.  
  28. </LinearLayout>

RecyclerView(4)简单示例的更多相关文章

  1. Linux下的C Socket编程 -- server端的简单示例

    Linux下的C Socket编程(三) server端的简单示例 经过前面的client端的学习,我们已经知道了如何创建socket,所以接下来就是去绑定他到具体的一个端口上面去. 绑定socket ...

  2. C# 构建XML(简单示例)

    C# 构建XML的简单示例: var pars = new Dictionary<string, string> { {"url","https://www. ...

  3. 根据juery CSS点击一个标签弹出一个遮罩层的简单示例

    <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...

  4. ACEXML解析XML文件——简单示例程序

    掌握了ACMXML库解析XML文件的方法后,下面来实现一个比较完整的程序. 定义基本结构 xml文件格式如下 <?xml version="1.0"?> <roo ...

  5. demo工程的清单文件及activity中api代码简单示例

    第一步注册一个账户,并创建一个应用.获取app ID与 app Key. 第二步下载sdk 第三步新建工程,修改清单文件,导入相关的sdk文件及调用相应的api搞定. 3.1 修改清单文件,主要是加入 ...

  6. spring-servlet.xml简单示例

    spring-servlet.xml简单示例 某个项目中的spring-servlet.xml 记下来以后研究用 <!-- springMVC简单配置 --> <?xml versi ...

  7. SignalR 简单示例

    一.什么是 SignalR ASP.NET SignalR is a library for ASP.NET developers that simplifies the process of add ...

  8. Web API 简单示例

    一.RESTful和Web API Representational State Transfer (REST) is a software architecture style consisting ...

  9. XML引入多scheme文件约束简单示例

    XML引入多scheme文件约束简单示例,用company.xsd和department.xsd来约束company.xml: company.xsd <?xml version="1 ...

随机推荐

  1. .NET中如何使用反序列化JSON字符串/序列化泛型对象toJsonStr

    在进行 .NET Web MVC 框架开发的网站程序的时候,我们都会遇到最关键的问题,数据传输.   .NET MVC 4中的ControllerBase类建议我们用ViewBag动态数据字典形式(t ...

  2. 野指针及c++指针使用注意点

    避免野指针的产生 “野指针”的成因主要有: 1)指针变量没有被初始化.任何指针变量刚被创建时不会自动成为NULL指针,它的缺省值是随机的,它会乱指一气.所以,指针变量在创建的同时应当被初始化,要么将指 ...

  3. 问题 K: 【USACO2012Feb】植草 {Bronze题2}

    按着矩形周长的思路,到当前边的时候,前一层的覆盖数乘以高度加入 ans 就行,然而真正的算法可能并不是这个..只能想到这个了 ; type node=record l,r,mid,sum,delta: ...

  4. .NET核心代码保护策略-隐藏核心程序集

    经过之前那个道德指责风波过后也有一段时间没写博客了,当然不是我心怀内疚才这么久不写,纯粹是程序员的通病..怎一个懒字了得,本来想写一些长篇大论反讽一下那些道德高人的.想想还是算了,那样估计会引来新一波 ...

  5. mysql存储过程 OUT or INOUT argument 3 for routine

    mysql存储过程出现: OUT or INOUT argument 3 for routine gotask.UserLogin is not a variable or NEW pseudo-va ...

  6. 清除HTML中的特殊字符

    /// <summary>        /// 清楚HTML中的特殊字符        /// </summary>        /// <param name=&q ...

  7. asp.net mvc4 使用KindEditor文本编辑器

    最近做项目要用文本编辑器,编辑器好多种,这里介绍KindEditor在asp.net mvc4中的使用方法. 一.准备工作: 1.下载KindEditor.去官网:http://www.kindsof ...

  8. 官方 Animator 例子解析 Animator.MatchTarget

    一.官方的解释 Animator.MatchTargetSwitch to Manual ); Parameters matchPosition The position we want the bo ...

  9. centos telnet --xinetd 服务

    telnet由于是明文传输,所以安全起见最好不要用telnet服务.但是由于telnet是一个比较方便的远程工具,在windows上是自带 的不需要安装客户端即可使用.如果telnet设置的比较复杂, ...

  10. POJ2488A Knight's Journey

    http://poj.org/problem?id=2488 题意 : 给你棋盘大小,判断马能否走完棋盘上所有格子,前提是不走已经走过的格子,然后输出时按照字典序排序的第一种路径 思路 : 这个题吧, ...