Android Studio [RecyclerView/列表视图]
LinearRecyclerViewActivity.java
- package com.xdw.a122.recyclerview;
- import android.graphics.Rect;
- import android.support.annotation.NonNull;
- import android.support.v7.app.AppCompatActivity;
- import android.os.Bundle;
- import android.support.v7.widget.LinearLayoutManager;
- import android.support.v7.widget.RecyclerView;
- import android.view.View;
- import android.widget.Toast;
- import com.xdw.a122.R;
- public class LinearRecyclerViewActivity extends AppCompatActivity {
- private RecyclerView mRvmain;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_linear_recycler_view);
- mRvmain=findViewById(R.id.rv_main);
- mRvmain.setLayoutManager(new LinearLayoutManager(LinearRecyclerViewActivity.this));
- mRvmain.addItemDecoration(new SimpleDividerItemDecoration(this,20, 5));
- mRvmain.setAdapter(new LinearAdapter(LinearRecyclerViewActivity.this, new LinearAdapter.OnItemClickListener() {
- @Override
- public void onClick(int pos) {
- Toast.makeText(LinearRecyclerViewActivity.this,"Click"+pos,Toast.LENGTH_LONG).show();
- }
- }));
- }
- class MyDecoration extends RecyclerView.ItemDecoration{
- @Override
- public void getItemOffsets(@NonNull Rect outRect, @NonNull View view, @NonNull RecyclerView parent, @NonNull RecyclerView.State state) {
- super.getItemOffsets(outRect, view, parent, state);
- outRect.set(0,0,0,getResources().getDimensionPixelOffset(R.dimen.dividerHeight));
- }
- }
- }
LinearAdapter.java
- package com.xdw.a122.recyclerview;
- import android.content.Context;
- import android.support.annotation.NonNull;
- import android.support.design.animation.Positioning;
- import android.support.v7.widget.RecyclerView;
- import android.view.LayoutInflater;
- import android.view.View;
- import android.view.ViewGroup;
- import android.widget.TextView;
- import android.widget.Toast;
- import com.xdw.a122.R;
- import java.util.List;
- public class LinearAdapter extends RecyclerView.Adapter<LinearAdapter.LinearViewHolder> {
- private Context mContext;
- private OnItemClickListener mlistener; //分配空间
- //private List<String> list;
- public LinearAdapter(Context context,OnItemClickListener listener){
- this.mContext=context; //内容
- this.mlistener=listener; //传输位置
- }
- @NonNull
- @Override
- public LinearAdapter.LinearViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
- return new LinearViewHolder(LayoutInflater.from(mContext).inflate(R.layout.layout_linear_item,viewGroup,false));
- }
- @Override
- public void onBindViewHolder(@NonNull LinearAdapter.LinearViewHolder viewHolder, final int i) {
- viewHolder.textView.setText("Hello World"); //内容
- viewHolder.itemView.setOnClickListener(new View.OnClickListener() { //监听器按键
- @Override
- public void onClick(View v) {
- mlistener.onClick(i); //监听器
- }
- });
- }
- @Override
- public int getItemCount() {
- return 30;
- }
- class LinearViewHolder extends RecyclerView.ViewHolder{
- public TextView textView;
- public LinearViewHolder(@NonNull View itemView) {
- super(itemView);
- textView=itemView.findViewById(R.id.tv_title);
- }
- }
- public interface OnItemClickListener{ //字节型监听器
- void onClick(int pos);
- }
- }
RecyclerViewActivity
- package com.xdw.a122.recyclerview;
- import android.content.Intent;
- import android.support.v7.app.AppCompatActivity;
- import android.os.Bundle;
- import android.view.View;
- import android.widget.Button;
- import com.xdw.a122.R;
- public class RecyclerViewActivity extends AppCompatActivity {
- private Button mBtnLinear;
- private Button mBtnHor;
- private Button mBtnGrid;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_recycle_view);
- mBtnLinear=findViewById(R.id.btn_linear);
- mBtnLinear.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- Intent intent=new Intent(RecyclerViewActivity.this,LinearRecyclerViewActivity.class);
- startActivity(intent);
- }
- });
- mBtnHor=findViewById(R.id.btn_hor);
- mBtnHor.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- Intent intent=new Intent(RecyclerViewActivity.this,HorRecyclerViewActivity.class);
- startActivity(intent);
- }
- });
- mBtnGrid=findViewById(R.id.btn_grid);
- mBtnGrid.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- Intent intent=new Intent(RecyclerViewActivity.this,GridRecyclerViewActivity.class);
- startActivity(intent);
- }
- });
- }
- }
activity_layout_linear_item.xml
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- >
- <TextView
- android:id="@+id/tv_title"
- android:layout_width="match_parent"
- android:layout_height="50dp"
- android:gravity="center"
- android:textColor="#000"
- android:textSize="20sp"
- />
- </LinearLayout>
activity_linear_recycler_view.xml
- <?xml version="1.0" encoding="utf-8"?>
- <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:app="http://schemas.android.com/apk/res-auto"
- xmlns:tools="http://schemas.android.com/tools"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- tools:context=".recyclerview.LinearRecyclerViewActivity">
- <android.support.v7.widget.RecyclerView
- android:id="@+id/rv_main"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- />
- </RelativeLayout>
activity_recycler_view.xml
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:orientation="vertical">
- <Button
- android:id="@+id/btn_linear"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:text="列表视图"/>
- <Button
- android:id="@+id/btn_hor"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:text="水平滚动"/>
- <Button
- android:id="@+id/btn_grid"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:text="网格结构"/>
- </LinearLayout>
结果:
Android Studio [RecyclerView/列表视图]的更多相关文章
- android开发 RecyclerView 列表布局
创建一个一行的自定义布局 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns ...
- Android 自学之列表视图ListView和ListActivity
ListView是手机系统中使用非常广泛的一种组件,它以垂直列表的形式显示所有列表项. 创建ListView有两种方式: 直接使用ListView创建. 让Activity继承ListActivity ...
- Android Studio RecyclerView用法
首先创建一个布局 里面放一个文本 <TextView android:id="@+id/textView" android:layout_width="60dp&q ...
- Android Studio [RecyclerView/瀑布流显示]
PuRecyclerViewActivity.java package com.xdw.a122.recyclerview; import android.support.v7.app.AppComp ...
- [Android]android studio预览视图时报错
报错信息: 详细报错信息: java.lang.NoSuchMethodError: com.android.ide.common.rendering.api.LayoutlibCallback.ge ...
- 最完整Android Studio插件整理 (转)
转自:http://blog.csdn.net/alpha58/article/details/62881144 现在Android的开发者基本上都使用android Studio进行开发(如果你还在 ...
- Android Studio环境解读
一.使用IDE开发APP的流程 要熟悉一个新的IDE,可依次完成以下流程: 二.相关术语解析 Dalvik: Android特有的虚拟机,和JVM不同,Dalvik虚拟机非常适合在移动终端上使用! A ...
- Android零基础入门第12节:熟悉Android Studio界面,开始装逼卖萌
原文:Android零基础入门第12节:熟悉Android Studio界面,开始装逼卖萌 通过前两期的学习,我们可以正确搭建好Android Studio的开发环境,也创建了HelloWorld工程 ...
- 转发离线安装 Android Studio 更新
1.在线更新 随着 Android Studio 的越来越完善与流行,无论从功能性,还是性能上,它正在成为广大 Android 开发者的首选.但是因为总所周知墙的原因,我们在 Android Stud ...
随机推荐
- 去掉input框的数字箭头
input::-webkit-outer-spin-button,input::-webkit-inner-spin-button { -webkit-appearance: none;}input[ ...
- Leetcode之回溯法专题-37. 解数独(Sudoku Solver)
Leetcode之回溯法专题-37. 解数独(Sudoku Solver) 编写一个程序,通过已填充的空格来解决数独问题. 一个数独的解法需遵循如下规则: 数字 1-9 在每一行只能出现一次.数字 1 ...
- python decode encode 解码与编码问题
python 解码与编码问题 1.decode 俗称解码,把编码解码成unicode,例如一个字符串变量 str 是utf-8编码,使用str.decode('utf-8') ,就是把utf-8编码 ...
- CAD数据分块,偏移校准,加载到百度地图、高德地图、谷歌等地图上
前面分享过一篇如何将CAD海量数据显示在百度地图上(百度地图Canvas实现十万CAD数据秒级加载),但是很多开发者在CAD数据提取时遇到了问题,所以接下来的文章将介绍如何将CAD数据提取. 准备软件 ...
- Joda学习笔记
Joda Time简介 日常业务开发中,经常需要处理日期.比如:获取当前一个月之内的开播记录,获取十分钟之内的红包记录等等.我们之前是用java.util.Calendar实现的,直到我看到占小 ...
- 选择排序&冒泡排序&折半查找
//选择排序 void test2(int a[],int len){ //每次找出一个最小值,最小值依次与原数组交换位置,通过下标来完成交换,最小值下标每次都在变,变量存储 // 假如第一个是 ...
- [python]代码中包含中文,提示:SyntaxError: Non-ASCII character '\xcd'
解决方法: 把文件编码方式改为gbk即可.在代码开头写上: # coding=gbk
- hdu 1503 Advanced Fruits 最长公共子序列 *
Advanced Fruits Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- 深入分析Mybatis 使用useGeneratedKeys获取自增主键
摘要 我们经常使用useGenerateKeys来返回自增主键,避免多一次查询.也会经常使用on duplicate key update,来进行insertOrUpdate,来避免先query 在i ...
- Go语言标准库之strconv
Go语言中strconv包实现了基本数据类型和其字符串表示的相互转换. strconv包 strconv包实现了基本数据类型与其字符串表示的转换,主要有以下常用函数: Atoi().Itia().pa ...