AndroidStudio案例——图书列表
目录
实验内容及步骤
步骤:
运行结果:
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案例——图书列表相关推荐
- Vue小案例——图书列表
图书列表 案例显示 HTML 结构 CSS 样式 提供的静态数据 把提供好的数据渲染到页面上 对页面进行事件绑定 逻辑层次的JS代码 案例显示 图书列表 实现静态列表效果 基于数据实现模板效果 处里每 ...
- 【15】Vue:02-Vue表单基本操作、表单修饰符、自定义指令、计算属性computed、侦听器watch、过滤器、生命周期、数组变异方法、替换数组、动态数组响应数据、图书列表案例、TODOS案例
文章目录 day02 Vue常用特性 表单基本操作 表单修饰符 自定义指令 Vue.directive 注册全局指令 Vue.directive 注册全局指令 带参数 自定义指令局部指令 计算属性 c ...
- Vue: 图书列表案例
图书列表案例 静态列表效果 基于数据实现模板效果 处理每行的操作按钮 1. 提供的静态数据 数据存放在vue 中 data 属性中 var vm = new Vue({el: '#app',data: ...
- 案例:图书管理(包括图书列表展示,添加、修改、删除图书功能)
案例:图书管理 功能如下: (1)图书列表 实现静态列表效果 基于数据实现模板效果 处理每行的操作按钮 (2)添加图书 实现表单的静态效果 添加图书表单域数据绑定 添加按钮事件绑定 实现添加业务逻辑 ...
- [Vue.js] 基础 -- 综合案例 -- 图书管理
综合案例 – 图书管理 补充知识(数组相关API) 变异方法(修改原有数据) push() pop() shift() unshift() splice() sort() reverse() 替换数组 ...
- 安卓案例:列表控件上拉加载更多
文章目录 一.上拉加载更多使用场景 二.案例演示 - 列表控件上拉加载更多 (一)运行效果 (二)涉及知识点 (三)实现步骤 1.创建安卓应用[ListViewLoadMore] 2.将背景图片拷贝到 ...
- Abp vnext Web应用程序开发教程 2 —— 图书列表页面
文章目录 关于本教程 下载源代码 动态JavaScript代理 在开发者控制台中进行测试 本地化 创建书籍页面 将书籍页面添加到主菜单 图书列表 运行最终应用程序 下一部分 关于本教程 本教程基于版本 ...
- 自定义UITableViewCell实现ibooks类似的图书列表形式
前几天实现iBooks类似的图书列表形式,share一下,效果如下. 实现关键代码原理: 1:创建UIt=TableView对象时,设置背景透明,分隔条透明 [plain] view plaincop ...
- 6.Django 图书列表练习
文章目录 1.搭建环境 1.1创建库 1.2 创建Django项目 1.3 路径&中间键问题 1.4 连接MySQL数据库 1.5 创建表 1. 表数据 2. 基础表 3. 外键字段 4. 完 ...
最新文章
- K8s中的external-traffic-policy是什么?
- 230. Kth Smallest Element in a BST ——迭代本质:a=xx1 while some_condition: a=xx2
- 一个通用Makefile详解
- JS----JavaScript数组去重(12种方法,史上最全)
- 如何在ftp服务器下查找文件夹,查找ftp服务器下的文件夹名
- labelimg标注工具使用
- python - 环境搭建
- php uid gid,用户信息,函数介绍,PHP开源CMS系统帮助文档
- JavaScript文档对象模型DOM节点操作之创建和添加节点(5)
- windows美化指南秒变mac风格
- 多元相关性分析_SPSS分析问卷数据的流程------一篇带你学会SPSS
- 视频修复工具修复损坏avi视频文件
- linux ansys14.0,linux 安装 ansys14
- ADC最佳SNR性能取决于输入低噪声信号和基准电压
- 加州大学洛杉玑分校计算机专业,加州大学洛杉矶分校计算机科学世界排名2019年最新排名第12(THE世界排名)...
- 服务器文件安全扫描,服务器安全扫描工具
- Unity 程序升级(PC版非热更新)
- 数据库的增删改查的一个例题
- Windows环境下安装pkg-config
- AR应用开发--EasyAR初体验(新手向)
热门文章
- 这个低代码平台让企业管理效率翻倍!
- Python range 和 xrange的区别
- openssl sm2 加解密
- 【Android 屏幕适配】屏幕适配基础概念 ④ ( 屏幕适配限定符 | 手机/平板电脑设备屏幕适配 )
- 用SPSS作洛伦兹曲线
- 【染色体识别】基于matlab形态学染色体计数【含Matlab源码 1066期】
- Differentiable Learning of Logical Rules for Knowledge Base Reasoning
- 数据库中的查询(Oracle)
- realsense相机两种获取相机内外参的方式
- 居民消费价格指数变化新鲜出炉,这类商品同比涨幅最大