LinearRecyclerViewActivity.java

  1. package com.xdw.a122.recyclerview;
  2.  
  3. import android.graphics.Rect;
  4. import android.support.annotation.NonNull;
  5. import android.support.v7.app.AppCompatActivity;
  6. import android.os.Bundle;
  7. import android.support.v7.widget.LinearLayoutManager;
  8. import android.support.v7.widget.RecyclerView;
  9. import android.view.View;
  10. import android.widget.Toast;
  11.  
  12. import com.xdw.a122.R;
  13.  
  14. public class LinearRecyclerViewActivity extends AppCompatActivity {
  15. private RecyclerView mRvmain;
  16. @Override
  17. protected void onCreate(Bundle savedInstanceState) {
  18. super.onCreate(savedInstanceState);
  19. setContentView(R.layout.activity_linear_recycler_view);
  20. mRvmain=findViewById(R.id.rv_main);
  21. mRvmain.setLayoutManager(new LinearLayoutManager(LinearRecyclerViewActivity.this));
  22. mRvmain.addItemDecoration(new SimpleDividerItemDecoration(this,20, 5));
  23. mRvmain.setAdapter(new LinearAdapter(LinearRecyclerViewActivity.this, new LinearAdapter.OnItemClickListener() {
  24. @Override
  25. public void onClick(int pos) {
  26. Toast.makeText(LinearRecyclerViewActivity.this,"Click"+pos,Toast.LENGTH_LONG).show();
  27. }
  28. }));
  29.  
  30. }
  31.  
  32. class MyDecoration extends RecyclerView.ItemDecoration{
  33. @Override
  34. public void getItemOffsets(@NonNull Rect outRect, @NonNull View view, @NonNull RecyclerView parent, @NonNull RecyclerView.State state) {
  35. super.getItemOffsets(outRect, view, parent, state);
  36. outRect.set(0,0,0,getResources().getDimensionPixelOffset(R.dimen.dividerHeight));
  37. }
  38. }
  39. }

LinearAdapter.java

  1. package com.xdw.a122.recyclerview;
  2.  
  3. import android.content.Context;
  4. import android.support.annotation.NonNull;
  5. import android.support.design.animation.Positioning;
  6. import android.support.v7.widget.RecyclerView;
  7. import android.view.LayoutInflater;
  8. import android.view.View;
  9. import android.view.ViewGroup;
  10. import android.widget.TextView;
  11. import android.widget.Toast;
  12.  
  13. import com.xdw.a122.R;
  14.  
  15. import java.util.List;
  16.  
  17. public class LinearAdapter extends RecyclerView.Adapter<LinearAdapter.LinearViewHolder> {
  18. private Context mContext;
  19. private OnItemClickListener mlistener; //分配空间
  20. //private List<String> list;
  21. public LinearAdapter(Context context,OnItemClickListener listener){
  22. this.mContext=context; //内容
  23. this.mlistener=listener; //传输位置
  24. }
  25. @NonNull
  26. @Override
  27. public LinearAdapter.LinearViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
  28. return new LinearViewHolder(LayoutInflater.from(mContext).inflate(R.layout.layout_linear_item,viewGroup,false));
  29. }
  30.  
  31. @Override
  32. public void onBindViewHolder(@NonNull LinearAdapter.LinearViewHolder viewHolder, final int i) {
  33. viewHolder.textView.setText("Hello World"); //内容
  34. viewHolder.itemView.setOnClickListener(new View.OnClickListener() { //监听器按键
  35. @Override
  36. public void onClick(View v) {
  37. mlistener.onClick(i); //监听器
  38. }
  39. });
  40. }
  41.  
  42. @Override
  43. public int getItemCount() {
  44. return 30;
  45. }
  46. class LinearViewHolder extends RecyclerView.ViewHolder{
  47. public TextView textView;
  48. public LinearViewHolder(@NonNull View itemView) {
  49. super(itemView);
  50. textView=itemView.findViewById(R.id.tv_title);
  51. }
  52. }
  53. public interface OnItemClickListener{ //字节型监听器
  54. void onClick(int pos);
  55.  
  56. }
  57. }

RecyclerViewActivity

  1. package com.xdw.a122.recyclerview;
  2.  
  3. import android.content.Intent;
  4. import android.support.v7.app.AppCompatActivity;
  5. import android.os.Bundle;
  6. import android.view.View;
  7. import android.widget.Button;
  8.  
  9. import com.xdw.a122.R;
  10.  
  11. public class RecyclerViewActivity extends AppCompatActivity {
  12. private Button mBtnLinear;
  13. private Button mBtnHor;
  14. private Button mBtnGrid;
  15. @Override
  16. protected void onCreate(Bundle savedInstanceState) {
  17. super.onCreate(savedInstanceState);
  18. setContentView(R.layout.activity_recycle_view);
  19. mBtnLinear=findViewById(R.id.btn_linear);
  20. mBtnLinear.setOnClickListener(new View.OnClickListener() {
  21. @Override
  22. public void onClick(View v) {
  23. Intent intent=new Intent(RecyclerViewActivity.this,LinearRecyclerViewActivity.class);
  24. startActivity(intent);
  25. }
  26. });
  27. mBtnHor=findViewById(R.id.btn_hor);
  28. mBtnHor.setOnClickListener(new View.OnClickListener() {
  29. @Override
  30. public void onClick(View v) {
  31. Intent intent=new Intent(RecyclerViewActivity.this,HorRecyclerViewActivity.class);
  32. startActivity(intent);
  33. }
  34. });
  35. mBtnGrid=findViewById(R.id.btn_grid);
  36. mBtnGrid.setOnClickListener(new View.OnClickListener() {
  37. @Override
  38. public void onClick(View v) {
  39. Intent intent=new Intent(RecyclerViewActivity.this,GridRecyclerViewActivity.class);
  40. startActivity(intent);
  41. }
  42. });
  43. }
  44. }

activity_layout_linear_item.xml

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout
  3. xmlns:android="http://schemas.android.com/apk/res/android"
  4. android:layout_width="match_parent"
  5. android:layout_height="wrap_content"
  6. >
  7. <TextView
  8. android:id="@+id/tv_title"
  9. android:layout_width="match_parent"
  10. android:layout_height="50dp"
  11. android:gravity="center"
  12. android:textColor="#000"
  13. android:textSize="20sp"
  14. />
  15. </LinearLayout>

activity_linear_recycler_view.xml

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. xmlns:app="http://schemas.android.com/apk/res-auto"
  4. xmlns:tools="http://schemas.android.com/tools"
  5. android:layout_width="match_parent"
  6. android:layout_height="match_parent"
  7. tools:context=".recyclerview.LinearRecyclerViewActivity">
  8. <android.support.v7.widget.RecyclerView
  9. android:id="@+id/rv_main"
  10. android:layout_width="match_parent"
  11. android:layout_height="wrap_content"
  12.  
  13. />
  14. </RelativeLayout>

activity_recycler_view.xml

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3.  
  4. android:layout_width="match_parent"
  5. android:layout_height="match_parent"
  6. android:orientation="vertical">
  7.  
  8. <Button
  9. android:id="@+id/btn_linear"
  10. android:layout_width="match_parent"
  11. android:layout_height="wrap_content"
  12. android:text="列表视图"/>
  13. <Button
  14. android:id="@+id/btn_hor"
  15. android:layout_width="match_parent"
  16. android:layout_height="wrap_content"
  17. android:text="水平滚动"/>
  18. <Button
  19. android:id="@+id/btn_grid"
  20. android:layout_width="match_parent"
  21. android:layout_height="wrap_content"
  22. android:text="网格结构"/>
  23. </LinearLayout>

结果:

Android Studio [RecyclerView/列表视图]的更多相关文章

  1. android开发 RecyclerView 列表布局

    创建一个一行的自定义布局 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns ...

  2. Android 自学之列表视图ListView和ListActivity

    ListView是手机系统中使用非常广泛的一种组件,它以垂直列表的形式显示所有列表项. 创建ListView有两种方式: 直接使用ListView创建. 让Activity继承ListActivity ...

  3. Android Studio RecyclerView用法

    首先创建一个布局 里面放一个文本 <TextView android:id="@+id/textView" android:layout_width="60dp&q ...

  4. Android Studio [RecyclerView/瀑布流显示]

    PuRecyclerViewActivity.java package com.xdw.a122.recyclerview; import android.support.v7.app.AppComp ...

  5. [Android]android studio预览视图时报错

    报错信息: 详细报错信息: java.lang.NoSuchMethodError: com.android.ide.common.rendering.api.LayoutlibCallback.ge ...

  6. 最完整Android Studio插件整理 (转)

    转自:http://blog.csdn.net/alpha58/article/details/62881144 现在Android的开发者基本上都使用android Studio进行开发(如果你还在 ...

  7. Android Studio环境解读

    一.使用IDE开发APP的流程 要熟悉一个新的IDE,可依次完成以下流程: 二.相关术语解析 Dalvik: Android特有的虚拟机,和JVM不同,Dalvik虚拟机非常适合在移动终端上使用! A ...

  8. Android零基础入门第12节:熟悉Android Studio界面,开始装逼卖萌

    原文:Android零基础入门第12节:熟悉Android Studio界面,开始装逼卖萌 通过前两期的学习,我们可以正确搭建好Android Studio的开发环境,也创建了HelloWorld工程 ...

  9. 转发离线安装 Android Studio 更新

    1.在线更新 随着 Android Studio 的越来越完善与流行,无论从功能性,还是性能上,它正在成为广大 Android 开发者的首选.但是因为总所周知墙的原因,我们在 Android Stud ...

随机推荐

  1. 去掉input框的数字箭头

    input::-webkit-outer-spin-button,input::-webkit-inner-spin-button { -webkit-appearance: none;}input[ ...

  2. Leetcode之回溯法专题-37. 解数独(Sudoku Solver)

    Leetcode之回溯法专题-37. 解数独(Sudoku Solver) 编写一个程序,通过已填充的空格来解决数独问题. 一个数独的解法需遵循如下规则: 数字 1-9 在每一行只能出现一次.数字 1 ...

  3. python decode encode 解码与编码问题

    python 解码与编码问题 1.decode 俗称解码,把编码解码成unicode,例如一个字符串变量 str 是utf-8编码,使用str.decode('utf-8')  ,就是把utf-8编码 ...

  4. CAD数据分块,偏移校准,加载到百度地图、高德地图、谷歌等地图上

    前面分享过一篇如何将CAD海量数据显示在百度地图上(百度地图Canvas实现十万CAD数据秒级加载),但是很多开发者在CAD数据提取时遇到了问题,所以接下来的文章将介绍如何将CAD数据提取. 准备软件 ...

  5. Joda学习笔记

       Joda Time简介 日常业务开发中,经常需要处理日期.比如:获取当前一个月之内的开播记录,获取十分钟之内的红包记录等等.我们之前是用java.util.Calendar实现的,直到我看到占小 ...

  6. 选择排序&冒泡排序&折半查找

    //选择排序 void test2(int a[],int len){ //每次找出一个最小值,最小值依次与原数组交换位置,通过下标来完成交换,最小值下标每次都在变,变量存储 //    假如第一个是 ...

  7. [python]代码中包含中文,提示:SyntaxError: Non-ASCII character '\xcd'

    解决方法: 把文件编码方式改为gbk即可.在代码开头写上: # coding=gbk

  8. hdu 1503 Advanced Fruits 最长公共子序列 *

    Advanced Fruits Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) ...

  9. 深入分析Mybatis 使用useGeneratedKeys获取自增主键

    摘要 我们经常使用useGenerateKeys来返回自增主键,避免多一次查询.也会经常使用on duplicate key update,来进行insertOrUpdate,来避免先query 在i ...

  10. Go语言标准库之strconv

    Go语言中strconv包实现了基本数据类型和其字符串表示的相互转换. strconv包 strconv包实现了基本数据类型与其字符串表示的转换,主要有以下常用函数: Atoi().Itia().pa ...