目录

实验内容及步骤

步骤:

运行结果:

1、配置drawable文件

2、配置listiem.xml文件

3、导入到activity_main.xml中

4、配置Java代码

【Java代码详解】

1.定义资源数组

2.新建list数组

3.赋值键值对,自定义名称为键,资源数组为值

4. 使用SimpleAdapter创建ListView

SimpleAdapter的用法

SimpleAdapter (Context context, List> data, int resource, String[] from, int[] to)

6.为ListView设置Adapter

为wListView设置Adaweipter为ListView


实验内容及步骤

在layout文件夹的布局文件activity_main.xml中设计如图界面,利用ListView组件模仿”当当APP”中的图书列表设计图书榜单显示的APP界面

步骤:

  • 在主布局文件中设置ListView组件。
  • 建立listitem布局文件,设计列表项布局
  • 在MainActivity中根据相关资源对象定义图书适配器(Adapter)。

运行结果:

1、配置drawable文件

将book_img1~5.jpg:图书封面照片,index_star1~5.png:星级评定图片复制到drawable文件夹中

链接:图片资源链接
提取码:1234

2、配置listiem.xml文件

在layout文件夹中新建listiem.xml文件,写列表的每一项的UI

<?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="horizontal"android:padding="10dp"><ImageViewandroid:id="@+id/header"android:layout_width="240dp"android:layout_height="100dp"android:layout_weight="1.5"android:scaleType="centerCrop"android:background="#FF6200EE"android:src="@drawable/book_1"/><RelativeLayoutandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_weight="1"><TextViewandroid:id="@+id/name"android:layout_width="match_parent"android:layout_height="20dp"android:textColor="@color/black"android:paddingLeft="10dp"android:text="Python编程从入到实践第二版"android:textSize="18dp" /><ImageViewandroid:id="@+id/star"android:layout_width="65dp"android:layout_height="20dp"android:paddingLeft="10dp"android:src="@drawable/index_star5"android:scaleType="centerInside"android:layout_below="@+id/name"/><TextViewandroid:id="@+id/pl"android:layout_width="wrap_content"android:layout_height="20dp"android:paddingLeft="10dp"android:text="201759条评论"android:textSize="14dp"android:layout_below="@+id/name"android:layout_toRightOf="@+id/star"/><TextViewandroid:id="@+id/author"android:layout_width="match_parent"android:layout_height="wrap_content"android:paddingLeft="10dp"android:text="作者:[美]埃里克·马瑟斯(Eric Matthes)"android:textSize="14dp"android:layout_below="@+id/star"/><TextViewandroid:id="@+id/cb"android:layout_width="match_parent"android:layout_height="20dp"android:paddingLeft="10dp"android:text="出版社:人民邮电出版社"android:textSize="14dp"android:layout_below="@id/author"/><TextViewandroid:id="@+id/flag"android:layout_width="30dp"android:layout_height="20dp"android:paddingLeft="10dp"android:text="¥"android:textSize="18dp"android:textColor="@color/black"android:layout_below="@+id/cb"/><TextViewandroid:id="@+id/price"android:layout_width="match_parent"android:layout_height="20dp"android:paddingLeft="10dp"android:text="54.9"android:textSize="18dp"android:textColor="@color/black"android:layout_below="@+id/cb"android:layout_toRightOf="@+id/flag"/></RelativeLayout></LinearLayout>

可以看到排版如图

3、导入到activity_main.xml中

在activity_main.xml文件中,定义一个ListView

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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=".MainActivity"><!-- 定义一个ListView --><ListViewandroid:id="@+id/listView"android:layout_width="wrap_content"android:layout_height="wrap_content" ></ListView></LinearLayout>

4、配置Java代码

在MainActivity.java中写道

package com.example.a1025;import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;
import android.widget.ListView;
import android.widget.SimpleAdapter;import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;public class MainActivity extends AppCompatActivity {private String[] names = new String[]{"Python编程从入门到实践第2版","深入理解计算机系统","机器学习","Redis设计与实现","深入理解Java虚拟机:JVM高级特性与实践"};private int[] stars = new int[]{R.drawable.index_star5,R.drawable.index_star3,R.drawable.index_star4,R.drawable.index_star3,R.drawable.index_star5};private String[] pl = new String[]{"201759条评论","30097条评论","3347条评论","13161条评论","18990条评论"};private String[] author = new String[]{"作者:[美]埃里克·马瑟斯(Eric Matthes)","作者:(美)兰德尔 E.布莱恩特(Randal E.Bryant)等","作者:周志华","作者:黄健宏","作者:周志明"};private String[] cbs = new String[]{"出版社:人民邮电出版社","出版社:机械工业出版社","出版社:清华大学出版社","出版社:机械工业出版社","出版社:机械工业出版社"};private double[] price = new double[]{54.90,65.50,54.00,39.5,64.50};private int[] imageIds = new int[]{R.drawable.book_1,R.drawable.book_2,R.drawable.book_3,R.drawable.book_4,R.drawable.book_5};@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);List<Map<String,Object>> listitem=new ArrayList<>();for(int i=0;i<5;i++){Map<String,Object>map_list=new HashMap<>();map_list.put("header",imageIds[i]);map_list.put("Name",names[i]);map_list.put("Star",stars[i]);map_list.put("pl",pl[i]);map_list.put("author",author[i]);map_list.put("cbs",cbs[i]);map_list.put("price",price[i]);listitem.add(map_list);}SimpleAdapter simpleAdapter=new SimpleAdapter(this,listitem,R.layout.listitem,new String[]{"header","Name","Star","pl","author","cbs","price"},new int[]{R.id.header,R.id.name,R.id.star,R.id.pl,R.id.author,R.id.cb,R.id.price});ListView listView=findViewById(R.id.listView);listView.setAdapter((simpleAdapter));}}

【Java代码详解】

1.定义资源数组

    private String[] names = new String[]{"Python编程从入门到实践第2版","深入理解计算机系统","机器学习","Redis设计与实现","深入理解Java虚拟机:JVM高级特性与实践"};private int[] stars = new int[]{R.drawable.index_star5,R.drawable.index_star3,R.drawable.index_star4,R.drawable.index_star3,R.drawable.index_star5};private String[] pl = new String[]{"201759条评论","30097条评论","3347条评论","13161条评论","18990条评论"};private String[] author = new String[]{"作者:[美]埃里克·马瑟斯(Eric Matthes)","作者:(美)兰德尔 E.布莱恩特(Randal E.Bryant)等","作者:周志华","作者:黄健宏","作者:周志明"};private String[] cbs = new String[]{"出版社:人民邮电出版社","出版社:机械工业出版社","出版社:清华大学出版社","出版社:机械工业出版社","出版社:机械工业出版社"};private double[] price = new double[]{54.90,65.50,54.00,39.5,64.50};private int[] imageIds = new int[]{R.drawable.book_1,R.drawable.book_2,R.drawable.book_3,R.drawable.book_4,R.drawable.book_5};

2.新建list数组

List<Map<String,Object>> listitem=new ArrayList<>();

3.赋值键值对,自定义名称为键,资源数组为值

for(int i=0;i<5;i++){Map<String,Object>map_list=new HashMap<>();map_list.put("header",imageIds[i]);map_list.put("Name",names[i]);map_list.put("Star",stars[i]);map_list.put("pl",pl[i]);map_list.put("author",author[i]);map_list.put("cbs",cbs[i]);map_list.put("price",price[i]);listitem.add(map_list);}

4. 使用SimpleAdapter创建ListView

 SimpleAdapter simpleAdapter=new SimpleAdapter(this,listitem,R.layout.listitem,new String[]{"header","Name","Star","pl","author","cbs","price"},new int[]{R.id.header,R.id.name,R.id.star,R.id.pl,R.id.author,R.id.cb,R.id.price});

SimpleAdapter的用法

SimpleAdapter (Context context, List<? extends Map<String, ?>> data, int resource, String[] from, int[] to)

SimpleAdapter对象,需要5个参数,后面4个是关键

  • 第2个参数:是一个List<Map<? extends Map<string,?>>的集合对象,集合中的每个 Map<string,?>对象是一个列表项
  • 第3个参数:该参数指定一个列表项布局界面的ID。
  • 第4个参数:一个String[]类型的参数,决定提取Map对象中的那些key值对应的value类生成类表项 就是:需要显示value的key值
  • 第5个参数:int[]类型的参数,决定填充哪些 组件,就是使用显示值得组件Id

6.为ListView设置Adapter

        ListView listView=findViewById(R.id.listView);listView.setAdapter((simpleAdapter));

为wListView设置Adaweipter为ListView

AndroidStudio案例——图书列表相关推荐

  1. Vue小案例——图书列表

    图书列表 案例显示 HTML 结构 CSS 样式 提供的静态数据 把提供好的数据渲染到页面上 对页面进行事件绑定 逻辑层次的JS代码 案例显示 图书列表 实现静态列表效果 基于数据实现模板效果 处里每 ...

  2. 【15】Vue:02-Vue表单基本操作、表单修饰符、自定义指令、计算属性computed、侦听器watch、过滤器、生命周期、数组变异方法、替换数组、动态数组响应数据、图书列表案例、TODOS案例

    文章目录 day02 Vue常用特性 表单基本操作 表单修饰符 自定义指令 Vue.directive 注册全局指令 Vue.directive 注册全局指令 带参数 自定义指令局部指令 计算属性 c ...

  3. Vue: 图书列表案例

    图书列表案例 静态列表效果 基于数据实现模板效果 处理每行的操作按钮 1. 提供的静态数据 数据存放在vue 中 data 属性中 var vm = new Vue({el: '#app',data: ...

  4. 案例:图书管理(包括图书列表展示,添加、修改、删除图书功能)

    案例:图书管理 功能如下: (1)图书列表 实现静态列表效果 基于数据实现模板效果 处理每行的操作按钮 (2)添加图书 实现表单的静态效果 添加图书表单域数据绑定 添加按钮事件绑定 实现添加业务逻辑 ...

  5. [Vue.js] 基础 -- 综合案例 -- 图书管理

    综合案例 – 图书管理 补充知识(数组相关API) 变异方法(修改原有数据) push() pop() shift() unshift() splice() sort() reverse() 替换数组 ...

  6. 安卓案例:列表控件上拉加载更多

    文章目录 一.上拉加载更多使用场景 二.案例演示 - 列表控件上拉加载更多 (一)运行效果 (二)涉及知识点 (三)实现步骤 1.创建安卓应用[ListViewLoadMore] 2.将背景图片拷贝到 ...

  7. Abp vnext Web应用程序开发教程 2 —— 图书列表页面

    文章目录 关于本教程 下载源代码 动态JavaScript代理 在开发者控制台中进行测试 本地化 创建书籍页面 将书籍页面添加到主菜单 图书列表 运行最终应用程序 下一部分 关于本教程 本教程基于版本 ...

  8. 自定义UITableViewCell实现ibooks类似的图书列表形式

    前几天实现iBooks类似的图书列表形式,share一下,效果如下. 实现关键代码原理: 1:创建UIt=TableView对象时,设置背景透明,分隔条透明 [plain] view plaincop ...

  9. 6.Django 图书列表练习

    文章目录 1.搭建环境 1.1创建库 1.2 创建Django项目 1.3 路径&中间键问题 1.4 连接MySQL数据库 1.5 创建表 1. 表数据 2. 基础表 3. 外键字段 4. 完 ...

最新文章

  1. K8s中的external-traffic-policy是什么?
  2. 230. Kth Smallest Element in a BST ——迭代本质:a=xx1 while some_condition: a=xx2
  3. 一个通用Makefile详解
  4. JS----JavaScript数组去重(12种方法,史上最全)
  5. 如何在ftp服务器下查找文件夹,查找ftp服务器下的文件夹名
  6. labelimg标注工具使用
  7. python - 环境搭建
  8. php uid gid,用户信息,函数介绍,PHP开源CMS系统帮助文档
  9. JavaScript文档对象模型DOM节点操作之创建和添加节点(5)
  10. windows美化指南秒变mac风格
  11. 多元相关性分析_SPSS分析问卷数据的流程------一篇带你学会SPSS
  12. 视频修复工具修复损坏avi视频文件
  13. linux ansys14.0,linux 安装 ansys14
  14. ADC最佳SNR性能取决于输入低噪声信号和基准电压
  15. 加州大学洛杉玑分校计算机专业,加州大学洛杉矶分校计算机科学世界排名2019年最新排名第12(THE世界排名)...
  16. 服务器文件安全扫描,服务器安全扫描工具
  17. Unity 程序升级(PC版非热更新)
  18. 数据库的增删改查的一个例题
  19. Windows环境下安装pkg-config
  20. AR应用开发--EasyAR初体验(新手向)

热门文章

  1. 这个低代码平台让企业管理效率翻倍!
  2. Python range 和 xrange的区别
  3. openssl sm2 加解密
  4. 【Android 屏幕适配】屏幕适配基础概念 ④ ( 屏幕适配限定符 | 手机/平板电脑设备屏幕适配 )
  5. 用SPSS作洛伦兹曲线
  6. 【染色体识别】基于matlab形态学染色体计数【含Matlab源码 1066期】
  7. Differentiable Learning of Logical Rules for Knowledge Base Reasoning
  8. 数据库中的查询(Oracle)
  9. realsense相机两种获取相机内外参的方式
  10. 居民消费价格指数变化新鲜出炉,这类商品同比涨幅最大