Android Studio列表用法之一:ListView图文列表显示(实例)
前言:
ListView这个列表控件在Android中是最常用的控件之一,几乎在所有的应用程序中都会使用到它。
目前正在做的一个记账本APP中就用到了它,主要是用它来呈现收支明细,是一个图文列表的呈现方式,下面就讲讲具体是如何实现的。
效果图:
该功能是在另一篇博文【Android Studio 使用ViewPager + Fragment实现滑动菜单Tab效果 --简易版】的基础上进行添加的

实现的思路:
1、该功能是用fragment来做布局的,首先创建一个fragment.xml布局文件,在里面添加一个ListView控件;
2、由于List里面既要呈现图片,也要呈现文字,所以再创建一个fragment_item.xml布局文件,在里面添加ImageView、TextView,用来显示图片和文字;
3、使用SimpleAdapter来绑定数据;
具体实现逻辑:
1、创建fragment_one.xml
<ListView
android:id="@+id/lv_expense"
android:layout_width="match_parent"
android:layout_height="wrap_content"> </ListView>
2、创建fragment_one_item.xml
<ImageView
android:id="@+id/image_expense"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingTop="10dp"
android:paddingRight="10dp"
android:paddingBottom="10dp"
android:adjustViewBounds="true"
android:maxWidth="72dp"
android:maxHeight="72dp"/>
<TextView
android:id="@+id/tv_expense_category"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:padding="10dp"/>
<TextView
android:id="@+id/tv_expense_money"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="10.0000"/>
3、主逻辑OneFragment.java
List<Map<String, Object>> listitem = new ArrayList<Map<String, Object>>(); //存储数据的数组列表
//写死的数据,用于测试
int[] image_expense = new int[]{R.mipmap.detail_income, R.mipmap.detail_payout }; //存储图片
String[] expense_category = new String[] {"发工资", "买衣服"};
String[] expense_money = new String[] {"30000.00", "1500.00"};
for (int i = 0; i < image_expense.length; i++)
{
Map<String, Object> map = new HashMap<String, Object>();
map.put("image_expense", image_expense[i]);
map.put("expense_category", expense_category[i]);
map.put("expense_money", expense_money[i]);
listitem.add(map);
} //创建适配器
// 第一个参数是上下文对象
// 第二个是listitem
// 第三个是指定每个列表项的布局文件
// 第四个是指定Map对象中定义的两个键(这里通过字符串数组来指定)
// 第五个是用于指定在布局文件中定义的id(也是用数组来指定)
SimpleAdapter adapter = new SimpleAdapter(getActivity()
, listitem
, R.layout.fragment_one_item
, new String[]{"expense_category", "expense_money", "image_expense"}
, new int[]{R.id.tv_expense_category, R.id.tv_expense_money, R.id.image_expense}); ListView listView = (ListView) v.findViewById(R.id.lv_expense);
listView.setAdapter(adapter);
以上就是整个功能实现的逻辑,本文代码中,List中呈现的数据是写死的,从数据库中获取源数据的方式可以参考我的源代码,且使用的数据库是SQLite。
源代码:https://github.com/AnneHan/ListViewDemo
SQLite数据库的使用:Android Studio 通过一个登录功能介绍SQLite数据库的使用
Android Studio列表用法之一:ListView图文列表显示(实例)的更多相关文章
- 解决 RecyclerView 在Android Studio已经导入情况下还无法实例引用问题
系统:Windows 10 IDE::android studio 1. 问题:RecyclerView 在Android Studio已经导入情况下还无法实例引用问题 由于RecyclerView是 ...
- .Net 转战 Android 4.4 日常笔记(6)--Android Studio DDMS用法
Android Studio DDMS与Eclipse DDMS大同小异,下面了解DDMS的使用 DDMS(Dalvik Debug Monitor Service )Dalvik调试监控服务 DDM ...
- Android 开发之Windows环境下Android Studio安装和使用教程(图文详细步骤)
鉴于谷歌最新推出的Android Studio备受开发者的推崇,所以也跟着体验一下. 一.介绍Android Studio Android Studio 是一个Android开发环境,基于Intel ...
- Android Studio下载安装及配置图文教程
原文 http://jingyan.baidu.com/article/9c69d48f56835e13c9024e95.html AndroidStudio下载地址:https://develope ...
- Android Studio RecyclerView用法
首先创建一个布局 里面放一个文本 <TextView android:id="@+id/textView" android:layout_width="60dp&q ...
- Android Studio 一个完整的APP实例(附源码和数据库)
前言: 这是我独立做的第一个APP,是一个记账本APP. This is the first APP, I've ever done on my own. It's a accountbook APP ...
- 《Android Studio实战 快速、高效地构建Android应用》--五、备忘录实验(1/2)
通过开发App熟悉Android Studio的用法 开发一款用于管理备忘事项列表的App,核心功能: 创建.删除备忘 将某些备忘标记为重要(左侧带颜色标签突出显示) 涉及:操作栏菜单.上下文菜单.用 ...
- Android Studio导入github下载的工程
现在从github上面现在的项目大部分都是Android Studio工程,那么问题来了,从github上面down一个工程下来,怎么导入android studio呢? 对刚从eclipse转And ...
- Windows环境下Android Studio安装和使用教程
Windows环境下Android Studio安装和使用教程 来源: http://www.cnblogs.com/liuhongfeng/archive/2015/12/30/5084896.ht ...
随机推荐
- 使用MultipartFile上传文件
转载地址:https://www.cnblogs.com/lunaticcoder/p/9813483.html(具体的看这个这个大佬的博客) 依赖包: <!-- 上传文件依赖组件 --> ...
- HoloLens开发手记 - 使用配件 Working with accessories
HoloLens提供了通过蓝牙使用配件的能力.使用附件两种常见情况是用来点击手势和虚拟键盘.对本文来讲,两个最常见的配件就是HoloLens Clicker(点击器)和蓝牙键盘.HoloLens包含了 ...
- .NET手记-Autofac进阶(传递注册参数 Passing Parameters to Register)
当你注册组件时,可以为组件服务传入一系列参数,用于服务解析时使用. 可使用的参数类型 Available Parameter Types Autofac提供了集中参数匹配类别: NamedParame ...
- Django Rest Framework-介绍
什么是RESTful REST与技术无关,代表的是一种软件架构风格,REST是Representational State Transfer的简称,中文翻译为"表征状态转移" RE ...
- Centos7安装Mysql8(官方整合包)
1. 下载整合包 [root@master ~]# wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.12-1.el7.x86_ ...
- SpringCloud断路器监控面板——Hystrix Dashboard
一.简介 Hystrix Dashboard是Hystrix的一个组件,Hystrix Dashboard提供一个断路器的监控面板,可以使我们更好的监控服务和集群的状态,仅仅使用Hystrix Das ...
- linux装tomcat遇到的坑
最开始通过apt-get安装,各种毛病 然后下载tar.gz压缩包解压使用,运行startup.sh可以启动,但是看日志发现 Tomcat启动时卡在 INFO HostConfig.deployDir ...
- 高并发连接导致打开文件过多:java.io.IOException: Too many open files 解决方法
用 CentOS 做 API 接口服务器供其他终端调用时,并发量高会报错:java.io.IOException: Too many open files. 其原因是在 Linux 下默认的Socke ...
- ssh隧道的妙用
场景说明:A主机和B主机在同一个园区网,A主机可以出公网,B主机不可以出公网.渗透工程师已经拿下A主机控制权. 一.如何在外网访问到B主机 方案:ssh本地端口映射背景:当我们拿下A主机之后想和B主机 ...
- python数据类型之内置方法
python有六大数据类型,分别为整型.字符串.列表.字典.元祖和集合,这些基本数据类型都内置了很多方法,接下来一一探寻. python中整型有两种:int和float 1 int 使用dir函数查看 ...