首页 > 其他分享 >APP学习6(RecycleView)

APP学习6(RecycleView)

时间:2023-03-05 21:12:54浏览次数:40  
标签:info 控件 title APP RecycleView 学习 MyHolder import 适配器

1. RecycleView

Android5.0之后提供的用于在有限的窗口范围内显示大量数据的控件。

与ListView相比,展示效果、适配器更好。

代码:

activity_main.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"
    >
    <androidx.recyclerview.widget.RecyclerView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/mylist"
        ></androidx.recyclerview.widget.RecyclerView>

</LinearLayout>

itemlayout.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:padding="10dp"
    android:gravity="center"
    android:orientation="horizontal"
    >
   <ImageView
       android:layout_width="120dp"
       android:layout_height="100dp"
       android:id="@+id/iv"
       ></ImageView>


    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/title"
            android:text="标题"
            android:layout_marginLeft="20dp"
            android:textColor="@color/black"
            android:textSize="25sp"></TextView>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/info"
            android:text="详细信息"
            android:layout_marginTop="5dp"
            android:maxLines="2"
            android:layout_marginLeft="20dp"
            android:layout_below="@+id/title"
            android:textColor="@color/black"
            android:ellipsize="end"
            android:textSize="20sp"></TextView>
    </RelativeLayout>
</LinearLayout>

MainActivity.java

package com.example.myapp;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;

import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {
/*
* 1.获取recycleview的控件对象
* 2.设置recycleview控件的适配器,包括item视图的布局和数据内容都要在适配器中定义出来
* 3.设置recycleview的布局管理器
* 4.创建适配器对象,将此对象交给recycleview控件对象
* */
    //1.
    private RecyclerView mylist;
    private String[] title={"苹果","草莓","西瓜","水蜜桃"};
    private int[] imgs={R.drawable.apple,R.drawable.straw,R.drawable.water,R.drawable.mitao};
    private String[] info={"苹果时红色的","草莓是草莓","西瓜是西瓜","水蜜桃是粉色的"};
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mylist = findViewById(R.id.mylist);
        //3.设置布局管理器
        mylist.setLayoutManager(new LinearLayoutManager(MainActivity.this,LinearLayoutManager.VERTICAL,true));
        //4.适配器
        MyAdapter ma = new MyAdapter();
        mylist.setAdapter(ma);
    }
    class MyAdapter extends RecyclerView.Adapter<MyAdapter.MyHolder>{

        @NonNull
        @Override//作用:获取itemview的视图对象,并将视图对象传递给viewholder
        public MyHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
            View v1 = View.inflate(MainActivity.this,R.layout.itemlayout,null);
            MyHolder myHolder = new MyHolder(v1);
            return myHolder;
        }

        @Override//onBindViewHolder将值绑定给hold对象
        public void onBindViewHolder(@NonNull MyHolder holder, int position) {
            holder.info.setText(info[position]);
            holder.title.setText(title[position]);
            holder.iv.setBackgroundResource(imgs[position]);
        }

        @Override
        public int getItemCount() {
            return title.length;
        }

        class MyHolder extends RecyclerView.ViewHolder{
            //需要赋值的控件对象
            ImageView iv;
            TextView title,info;
            public MyHolder(@NonNull View itemView) {
                super(itemView);
                iv = itemView.findViewById(R.id.iv);
                title = itemView.findViewById(R.id.title);
                info = itemView.findViewById(R.id.info);

            }
        }
    }

}

这种方式特别方便,也需要多理解。

 

 

 

标签:info,控件,title,APP,RecycleView,学习,MyHolder,import,适配器
From: https://www.cnblogs.com/hmy22466/p/17181668.html

相关文章

  • 《鞅与一类关于停时的概率与期望问题》学习笔记
    发现自己学的脑子都没了,重新系统的学(抄)一遍 $1\\$鞅与鞅的停时定理$1.1\$鞅定义$1.1.1.\$随机过程对于每一个参数\(t\inT,\omega\in\Omega\),\(X(......
  • SSM框架-SpringMVC学习日记5
    结果跳转方式ModelAndView设置ModelAndView对象,根据view的名称,和视图解析器跳到指定的页面.页面:{视图解析器前缀}+viewName+{视图解析器后缀}<!--视图解......
  • 3.5学习记录
    之前因为甲流的影响,导致发烧了五天,今天才回学校,所以学习记录断了一星期。从今天开始接着记录。在生病的这几天,我学习了如何登陆账户以及如何注册账户,如......
  • SSM框架-SpringMVC学习日记3
    控制器Controller控制器复杂提供访问应用程序的行为,通常通过接口定义或注解定义两种方法实现。控制器负责解析用户的请求并将其转换为一个模型。在SpringMVC中一个控制......
  • 「学习笔记」概率和期望
    「学习笔记」概率和期望点击查看目录目录「学习笔记」概率和期望例题P1850[NOIP2016提高组]换教室P2473[SCOI2008]奖励关P4284[SHOI2014]概率充电器P3232[HNOI......
  • SSM框架-SpringMVC学习日记4
    RestFul风格概念Restful就是一个资源定位及资源操作的风格。不是标准也不是协议,只是一种风格。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。功能......
  • 2023/3/5 C#学习笔记
    实现不同版本的重载方法的定义和使用通过使用可选参数和具名参数实现编译器根据参数自动选择重载方法版本*可选参数:定义方法时为参数提供默认值,没有提供默认值的参数是必需......
  • 结构化概率模型的深度学习方法
    深度学习从业者通常与其他从事结构化概率模型研究的机器学习研究者使用相同的基本计算工具。然而,在深度学习中,我们通常对如何组合这些工具作出不同的设计决定,导致总体算法......
  • spring找不到配置文件applicationContext.xml
    问题描述:报错信息为Causedby:java.io.FileNotFoundException:classpathresource[applicationContext.xml]cannotbeopenedbecauseitdoesnotexisttarget目......
  • 技术管理学习笔记(二)- 能力模型
    一:建立合理的沟通通道    稳定性 通道的稳定,其重点在于双方信任, 不会因为小误会而崩解,更容易获得包容与谅解。    性能   通道的性能,在于双方的......