遇到的异常

  java.lang.ExceptionInInitializerError静态块初始化异常

  NetworkOnMainThreadException访问网线不能在主线程中进行

我的参考资料

  http://www.oschina.net/question/1764894_246656?fromerr=ZElwOffs
  老师给的源代码

recyclerView 和cartView的导入方法

  别人的都是:
    compile 'com.android.support:recyclerview-v7:23.4.0'
    compile 'com.android.support:cardview-v7:23.4.0'

  但是我的自动添加是这样的:
    compile 'com.android.support:recyclerview-v7:24.0.0 -beat'
    compile 'com.android.support:cardview-v7:24.0.0 -beat'
    但是就算这样也是不成功的

  我的只能这样写:
    compile 'com.android.support:recyclerview-v7:21.+'
    compile 'com.android.support:cardview-v7:21.+'

 RecyclerView的使用

  1页面布局

  1. <android.support.v7.widget.RecyclerView
  2. android:id="@+id/rcView"
  3. android:layout_width="match_parent"
  4. android:layout_height="match_parent"
  5. />

  2初始化控件

  1. RecyclerView rcView;
  2. rcView = (RecyclerView) this.findViewById(R.id.rcView);

  3给它数据(图片、文字等等)

  1. List<Integer> imageUrls;
  2. Integer[] imgs ={
  3. R.drawable.happy1,R.drawable.happy2,R.drawable.happy3,R.drawable.happy4,
  4. R.drawable.happy5,R.drawable.happy6,R.drawable.happy7,R.drawable.happy8
  5. };
  6. imageUrls = new ArrayList<>();
  7. imageUrls.addAll(Arrays.asList(imgs));

  4适配器

  1. public class MyApdater extends RecyclerView.Adapter<MyApdater.MyViewHolder> {
  2.  
  3. private Context context;
  4. private LayoutInflater inflater;
  5. private List<Integer> imageList;
  6. private OnItemClickListener itemClickListener;
  7. public interface OnItemClickListener{
  8. void onItemClick(View view, int position);
  9. }
  10.  
  11. public void setOnItemClickListener(OnItemClickListener itemClickListener){
  12. this.itemClickListener = itemClickListener;
  13. }
  14.  
  15. public MyApdater(Context context, List<Integer> imageList) {
  16. this.context = context;
  17. this.imageList = imageList;
  18. inflater = LayoutInflater.from(context);
  19. setHasStableIds(true);
  20. }
  21.  
  22. @Override
  23. public long getItemId(int position) {
  24. return position;
  25. }
  26.  
  27. @Override
  28. public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
  29. return new MyViewHolder(inflater.inflate(R.layout.list_item,parent,false));
  30. }
  31.  
  32. @Override
  33. public int getItemCount() {
  34. return imageList.size();
  35. }
  36.  
  37. @Override
  38. public void onBindViewHolder(final MyViewHolder holder, final int position) {
  39. int e = imageList.get(position);
  40. holder.img_item.setImageResource(e);
  41. // x.image().bind(holder.img_item,imageList.get(position),options);
  42. /*if(itemClickListener != null){
  43. holder.img_item.setOnClickListener(new View.OnClickListener() {
  44. @Override
  45. public void onClick(View v) {
  46.  
  47. // int pos = holder.getPosition(); //获取当前Item的postion
  48. itemClickListener.onItemClick(holder.img_item,position);
  49. }
  50. });
  51. }*/
  52. }
  53.  
  54. class MyViewHolder extends RecyclerView.ViewHolder{
  55. private ImageView img_item;
  56. public MyViewHolder(View itemView) {
  57. super(itemView);
  58. img_item = (ImageView) itemView.findViewById(R.id.img_item);
  59. }
  60. }
  61. }

  5素材xml

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <android.support.v7.widget.CardView
  3. xmlns:android="http://schemas.android.com/apk/res/android"
  4. xmlns:card_view="http://schemas.android.com/apk/res-auto"
  5. android:id="@+id/card_view"
  6. android:layout_width="wrap_content"
  7. android:layout_height="wrap_content"
  8. android:layout_gravity="center"
  9. android:layout_margin="10dp"
  10. android:orientation="horizontal"
  11. card_view:cardBackgroundColor="#EEEEEE"
  12. card_view:cardCornerRadius="5dp">
  13.  
  14. <ImageView
  15. android:src="@drawable/happy1"
  16. android:id="@+id/img_item"
  17. android:layout_width="match_parent"
  18. android:layout_height="match_parent" />
  19.  
  20. </android.support.v7.widget.CardView>

  6在MainActivity中使用适配器

  1. MyApdater myApdater;
  2. myApdater = new MyApdater(this,imageUrls);
  3. rcView.setAdapter(myApdater);

  7设置RecyclerView的动画、显示等效果

  1. StaggeredGridLayoutManager layoutManager = new StaggeredGridLayoutManager(1,StaggeredGridLayoutManager.VERTICAL);
  2. rcView.setItemAnimator(new DefaultItemAnimator());
  3. //rcView.addItemDecoration();
  4. rcView.setLayoutManager(layoutManager);

 

附:MainActivity全代码

  1. package com.firefly.recyclerview;
  2.  
  3. import android.os.Bundle;
  4. import android.support.v7.app.ActionBarActivity;
  5. import android.support.v7.widget.DefaultItemAnimator;
  6. import android.support.v7.widget.RecyclerView;
  7. import android.support.v7.widget.StaggeredGridLayoutManager;
  8. import android.view.LayoutInflater;
  9. import android.view.Menu;
  10. import android.view.MenuItem;
  11. import android.view.View;
  12. import android.widget.TextView;
  13. import android.widget.Toast;
  14.  
  15. import java.util.ArrayList;
  16. import java.util.Arrays;
  17. import java.util.List;
  18.  
  19. public class MainActivity extends ActionBarActivity {
  20. RecyclerView rcView;
  21. MyApdater myApdater;
  22. List<Integer> imageUrls;
  23. Integer[] imgs ={
  24. R.drawable.happy1,R.drawable.happy2,R.drawable.happy3,R.drawable.happy4,
  25. R.drawable.happy5,R.drawable.happy6,R.drawable.happy7,R.drawable.happy8
  26. };
  27. @Override
  28. protected void onCreate(Bundle savedInstanceState) {
  29. super.onCreate(savedInstanceState);
  30. setContentView(R.layout.activity_main);
  31. initData();
  32. init();
  33. }
  34.  
  35. private void init() {
  36.  
  37. rcView = (RecyclerView) this.findViewById(R.id.rcView);
  38. //GridLayoutManager layoutManager = new GridLayoutManager(this,2);
  39. //LinearLayoutManager layoutManager = new LinearLayoutManager(this);
  40. //layoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);
  41. StaggeredGridLayoutManager layoutManager = new StaggeredGridLayoutManager(1,StaggeredGridLayoutManager.VERTICAL);
  42. rcView.setItemAnimator(new DefaultItemAnimator());
  43. //rcView.addItemDecoration();
  44. rcView.setLayoutManager(layoutManager);
  45. myApdater = new MyApdater(this,imageUrls);
  46. rcView.setAdapter(myApdater);
  47. /* myApdater.setOnItemClickListener(new MyApdater.OnItemClickListener() {
  48. @Override
  49. public void onItemClick(View view, int position) {
  50. Toast.makeText(MainActivity.this, position + " click", Toast.LENGTH_SHORT).show();
  51. imageUrls.remove(position);
  52. myApdater.notifyItemRemoved(position);
  53. }
  54. });*/
  55.  
  56. }
  57.  
  58. protected void initData()
  59. {
  60. imageUrls = new ArrayList<>();
  61. imageUrls.addAll(Arrays.asList(imgs));
  62. }
  63.  
  64. }

RecyclerView使用总结的更多相关文章

  1. RecyclerView使用大全

    RecylerView介绍 RecylerView是support-v7包中的新组件,是一个强大的滑动组件,与经典的ListView相比,同样拥有item回收复用的功能,这一点从它的名字recyler ...

  2. 带你实现开发者头条APP(五)--RecyclerView下拉刷新上拉加载

    title: 带你实现开发者头条APP(五)--RecyclerView下拉刷新上拉加载 tags: -RecyclerView,下拉刷新,上拉加载更多 grammar_cjkRuby: true - ...

  3. 安卓易学,爬坑不易——腾讯老司机的RecyclerView局部刷新爬坑之路

    针对手游的性能优化,腾讯WeTest平台的Cube工具提供了基本所有相关指标的检测,为手游进行最高效和准确的测试服务,不断改善玩家的体验.目前功能还在免费开放中. 点击地址:http://wetest ...

  4. Android Studio开发RecyclerView遇到的各种问题以及解决(二)

    开发RecyclerView时候需要导入别人的例子,我的是从github导入的,下载下github的压缩包之后解压看你要导入的文件是priject还是Module.(一般有app文件夹的大部分是pro ...

  5. Android Studio开发RecyclerView遇到的各种问题以及解决(一)

    以前一直在用ListView,,,最近才看RecyclerView发现好强大.RecyclerView前提是Android版本在5.0以上,本人以前用的是eclipse只支持到4.4.索性就安装一个A ...

  6. Android的Kotlin秘方(II):RecyclerView 和 DiffUtil

    作者:Antonio Leiva 时间:Sep 12, 2016 原文链接:http://antonioleiva.com/recyclerview-diffutil-kotlin/ 如你所知,在[支 ...

  7. Android RecyclerView 实现支付宝首页效果

    Android RecyclerView 实现支付宝首页效果 [TOC] 虽然我本人不喜欢支付宝的,但是这个网格本身其实还是不错的,项目更新中更改了一个布局为网格模式,类似支付宝.(估计是产品抄袭的= ...

  8. Android开发学习之路-RecyclerView滑动删除和拖动排序

    Android开发学习之路-RecyclerView使用初探 Android开发学习之路-RecyclerView的Item自定义动画及DefaultItemAnimator源码分析 Android开 ...

  9. 打造android偷懒神器———RecyclerView的万能适配器

    转载请注明出处谢谢:http://www.cnblogs.com/liushilin/p/5720926.html 很不好意思让大家久等了,本来昨天就应该写这个的,无奈公司昨天任务比较紧,所以没能按时 ...

  10. 安卓v7支持包下的ListView替代品————RecyclerView

    RecyclerView这个控件也出来很久了,相信大家也学习的差不多了,如果还没学习的,或许我可以带领大家体验一把这个艺术般的控件. 项目已经同步至github:https://github.com/ ...

随机推荐

  1. A quick tour of JSON libraries in Scala

    A quick tour of JSON libraries in Scala Update (18.11.2015): added spray-json-shapeless libraryUpdat ...

  2. Linux下安装配置Apache+PHP+MariaDB

    一.安装apache 1.下载并安装apache yum install httpd 2.启动apache systemctl start httpd.service 3.停止apache syste ...

  3. 2016HUAS暑假集训训练2 A - Is It A Tree?

    Description A tree is a well-known data structure that is either empty (null, void, nothing) or is a ...

  4. 数组遍历map和each使用

    <body> <input type="/> <input type="/> <input type="/> </b ...

  5. 解决谷歌浏览器和360浏览器 input 自动填充淡黄色背景色的问题

     input:-webkit-autofill {-webkit-box-shadow: 0 0 0px 1000px white inset;}

  6. 把验证码和生成时间负值给$_SESSION[vCode]生成图像给浏览器

    php 图片 中文验证码 <img src="verify_image.php" alt="点此刷新验证码" name="verify_code ...

  7. Web前端开发基础 第四课(CSS小技巧1)

    垂直居中-父元素高度确定的单行文本 父元素高度确定的单行文本的竖直居中的方法是通过设置父元素的 height 和 line-height 高度一致来实现的.如下代码: <div class=&q ...

  8. 关于怎样解决eclipse打开时出现的Failed to load the JNIshared library亲测有效

    之前一直可以正常使用eclipse但是当我装了Oracle后打开后就出现了Failed to load the JNIshared library(下面还出现了一个jvm.dll的文件路径),当时就蒙 ...

  9. shell读取文件每行,并执行命令

    #!/bin/bash while read line do $line & done < /path/filename

  10. Android如何连接MySQL数据库

    Android开发中,大多数连接到远程MySQL数据库的方法是加入特定的Service到代码中.由于MySQL通常是和PHP一起使用的,最简单以及最常见的方法是写PHP脚本管理数据连接,以及从Andr ...