Android listview

Android移动开发—Listview列表视图的使用讲解及SimpleAdapter实例 main.xml说明:定义一个listivew组件 阅读详情

 ListView是Android一系列组件之一,它以垂直列表的方式列出所需的列表项。实现方式有两种:
 * 第一种:使用ListView组件
 * 第二种:当前的Activity继承ListActivity

  ListView是需要绑定数据源的----->ArrayAdapter、SimpleAdapter、SimpleCursorAdapter

需要注意的是SimpleCursorAdapter要以数据库作为数据源的时候才使用。

来自SDK的描述:

A view that shows items in a vertically scrolling list. The items come from the ListAdapter associated with this view.

接下来就三种不同的数据源我写了一个例子,和大家一起来好好学习一下ListView。

首先,新建一个Android项目--->取名ListViewDemo

MainActivity.java的代码如下:

  1. public class MainActivity extends Activity implements OnClickListener{  
  2.     private Button btnArray,btnSimple,btnSimpleCursor;  
  3.     /** Called when the activity is first created. */  
  4.     @Override  
  5.     public void onCreate(Bundle savedInstanceState) {  
  6.         super.onCreate(savedInstanceState);  
  7.         setContentView(R.layout.main);  
  8.           
  9.         getWidgetInstance();  
  10.           
  11.         btnArray.setOnClickListener(this);  
  12.         btnSimple.setOnClickListener(this);  
  13.         btnSimpleCursor.setOnClickListener(this);  
  14.     }  
  15.       
  16.     public void getWidgetInstance() {  
  17.         btnArray = (Button)findViewById(R.id.btnArray);  
  18.         btnSimple = (Button)findViewById(R.id.btnSimple);  
  19.         btnSimpleCursor = (Button)findViewById(R.id.btnSimpleCursor);  
  20.     }  
  21.  
  22.     @Override  
  23.     public void onClick(View v) {  
  24.         int id = v.getId();  
  25.         switch(id) {  
  26.         case R.id.btnArray:  
  27.             Intent intent_array = new Intent(MainActivity.this,ArrayAdapterActivity.class);  
  28.             MainActivity.this.startActivity(intent_array);  
  29.             break;  
  30.         case R.id.btnSimple:  
  31.             Intent intent_simple = new Intent(MainActivity.this,SimpleAdapterActivity.class);  
  32.             MainActivity.this.startActivity(intent_simple);  
  33.             break;  
  34.         case R.id.btnSimpleCursor:  
  35.             Intent intent_cursor = new Intent(MainActivity.this,SimpleCursorAdapterActivity.class);  
  36.             MainActivity.this.startActivity(intent_cursor);  
  37.             break;  
  38.         }  
  39.     }  
  40. } 

main.xml的布局:

  1. <?xml version="1.0" encoding="utf-8"?> 
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
  3.     android:orientation="vertical" 
  4.     android:layout_width="fill_parent" 
  5.     android:layout_height="fill_parent" 
  6.     > 
  7. <TextView    
  8.     android:layout_width="fill_parent"   
  9.     android:layout_height="wrap_content"   
  10.     android:text="ListView使用示例" 
  11.     android:gravity="center" 
  12.     android:textColor="#EEE" 
  13.     android:textStyle="bold" 
  14.     android:textSize="25sp" 
  15.     /> 
  16. <Button 
  17.     android:id="@+id/btnArray" 
  18.     android:layout_width="wrap_content"   
  19.     android:layout_height="wrap_content"   
  20.     android:text="show ArrayAdapter" 
  21.     /> 
  22. <Button 
  23.     android:id="@+id/btnSimple" 
  24.     android:layout_width="wrap_content"   
  25.     android:layout_height="wrap_content"   
  26.     android:text="show SimpleAdapter" 
  27.     /> 
  28. <Button 
  29.     android:id="@+id/btnSimpleCursor" 
  30.     android:layout_width="wrap_content"   
  31.     android:layout_height="wrap_content"   
  32.     android:text="show SimpleCursorAdapter" 
  33.     /> 
  34. </LinearLayout> 

主界面有三个Button,每一个Button对应相应的数据源,显示出ListActivity。


接着,编写三个不同数据源的Activity

第一种:ArrayAdapter

ArrayAdapter是三种数据源中最简单的Adapter,只能显示一行文字

ArrayAdapter.java的代码如下:

  1. public class ArrayAdapterActivity extends ListActivity {  
  2.     @Override  
  3.     public void onCreate(Bundle savedInstanceState) {  
  4.         super.onCreate(savedInstanceState);  
  5.         //列表项的数据  
  6.         String[] strs = {"1","2","3","4","5"};  
  7.         ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_expandable_list_item_1,strs);  
  8.         setListAdapter(adapter);  
  9.     }  
  10. } 


第二种:SimpleAdapterActivity

SimpleAdapterActivity需要自定义每一项显示的布局方式:

所以simple.xml的代码如下:

  1. <?xml version="1.0" encoding="utf-8"?> 
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
  3.     android:orientation="vertical" 
  4.     android:layout_width="fill_parent" 
  5.     android:layout_height="fill_parent" 
  6.     > 
  7. <ImageView 
  8.     android:id="@+id/img" 
  9.     android:layout_width="wrap_content" 
  10.     android:layout_height="wrap_content" 
  11.     android:layout_margin="5dp" 
  12.     /> 
  13. <TextView 
  14.     android:id="@+id/title" 
  15.     android:layout_width="wrap_content"   
  16.     android:layout_height="wrap_content"   
  17.     android:textColor="#ffffff" 
  18.     android:textSize="20sp" 
  19.     /> 
  20. </LinearLayout> 

SimpleAdapterActivity.java代码如下:

  1. public class SimpleAdapterActivity extends ListActivity {  
  2.     @Override  
  3.     public void onCreate(Bundle savedInstanceState) {  
  4.         super.onCreate(savedInstanceState);  
  5.           
  6.         SimpleAdapter adapter = new SimpleAdapter(this, getData(), R.layout.simple, new String[] { "title",  "img" }, new int[] { R.id.title, R.id.img });  
  7.         setListAdapter(adapter);  
  8.     }  
  9.       
  10.     private List<Map<String, Object>> getData() {  
  11.         //map.put(参数名字,参数值)  
  12.         List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();  
  13.         Map<String, Object> map = new HashMap<String, Object>();  
  14.         map.put("title", "摩托罗拉");  
  15.         map.put("img", R.drawable.icon);  
  16.         list.add(map);  
  17.           
  18.         map = new HashMap<String, Object>();  
  19.         map.put("title", "诺基亚");  
  20.         map.put("img", R.drawable.icon);  
  21.         list.add(map);  
  22.           
  23.         map = new HashMap<String, Object>();  
  24.         map.put("title", "三星");  
  25.         map.put("img", R.drawable.icon);  
  26.         list.add(map);  
  27.         return list;  
  28.         }    
  29. } 


第三种:SimpleCursorAdapterActivity

SimpleCursorAdapterActivity是依赖于数据库的一种数据源,这里为了方便我就不重新建一个数据库,然后插入数据了,我就用读取联系人姓名的方式为例和大家做一个简单的介绍。

SimpleCursorAdapterActivity.xml代码如下:

  1. public class SimpleCursorAdapterActivity extends ListActivity {  
  2.     @Override  
  3.     public void onCreate(Bundle savedInstanceState) {  
  4.         super.onCreate(savedInstanceState);  
  5.         //获得一个指向系统通讯录数据库的Cursor对象获得数据来源  
  6.         Cursor cur = getContentResolver().query(People.CONTENT_URI, null, null, null, null);  
  7.         startManagingCursor(cur);  
  8.         //实例化列表适配器  
  9.           
  10.         ListAdapter adapter = new SimpleCursorAdapter(this, android.R.layout.simple_list_item_1, cur, new String[] {People.NAME}, new int[] {android.R.id.text1});  
  11.         setListAdapter(adapter);  
  12.     }  
  13. } 

这里特别需要注意的一点是:不要忘了在AndroidManifest.xml文件中加入权限

<uses-permission android:name="android.permission.READ_CONTACTS"></uses-permission>


winform入门篇 第14章 列表控件 MyListltemTag定义 MyListltemTag,每个 ListViewltem 关联一个 Tag对象比较器需要实现 IComparer 接口实现 Compare 方法,比较对象x和y的相对大小。其中,传进来的 x y 对象实际上是 ListViewltem 类型。 阅读详情

相关推荐

listview mysql 安卓_Android——ListView与数据库的结合

前言ListView与数据库结合使用也是一种非常常见的手段。例如歌单的ListView,在我们重新启动应用的时候数据依旧存在,如下图:具体实现一、准备Activity和ListViewActivity要继承ListActivity或AppCompatActivity(推荐后者)ListView不需要先准备适配器Adapter,只需要初始化好ListView就行了二、创建数据库新建一个类MySQLi...

weixin_39694174的博客 1075

android中ListView的使用

ListView是Android一系列组件之一,它以垂直列表的方式列出所需的列表项。实现方式有两种:  * 第一种:使用ListView组件  * 第二种:当前的Activity继承ListActivity   ListView是需要绑定数据源的----->ArrayAdapter、SimpleAdapter、SimpleCursorAdapter 需要注意的是SimpleCursorAd

糖果π 817

ListView开发实例 ListView示例 ListView案例 小例子 源码

ListView开发实例 ListView示例 ListView案例 小例子 源码

ListView的实现步骤及几种实现方式

ListView的实现步骤及几种实现方式

弱水三千只取一瓢饮 4781

糖尿病预测(深度学习pytorch实现-最新)

本次做的项目是糖尿病的预测,也是来自kaggle上面的一个小项目。根据一个人的怀孕次数、血糖、血压、皮肤厚度、胰岛素指标、身体质量指数、糖尿病谱系指数、年龄等身体参数来预测一个人是否患有糖尿病。

NangoGreen的博客 5358

推荐算法之Thompson(汤普森)采样

如果想理解汤普森采样算法,就必须先熟悉了解贝塔分布。 一、Beta(贝塔)分布 Beta分布是一个定义在[0,1]区间上的连续概率分布族,它有两个正值参数,称为形状参数,一般用α和β表示,Beta分布的概率密度函数形式如下: 这里的Γ表示gamma函数。 Beta分布的均值是: 方差: ...

weixin_30508241的博客 4259

ListView的实例讲解

列表(listview)是Android界面开发的常用到的组件,通过列表的形式展现内容,其中子元素能够自适应长度显示。使用listview我个人觉得只要搞懂两点就可以了: 1.写出供显示的listview的一个子元素的xml。 2.适配器 系统提供给我们的适配器有ArrayAdapter(只能显示一行字)、SimpleAdapter(能够显示字和图片,个人觉得这个已经够用了)光说不练是没有用的

betterAndroider的博客 641

Linux之GTK系列教程

00、背上行囊1——程序员学习之道 01、背上行囊2——为什么要学习GTK 02、背上行囊3——GUI概述 03、背上行囊4——GTK简介 04、背上行囊5——GTK环境搭建( Linux ) 05、背上行囊6——GTK环境搭建( windows ) 06、踏上旅途1——一个简单的空白窗口 07、踏上旅途2——控件的添加 08、踏上旅途3——布局容器之水平布局 09、踏上旅途

每天积累一点点 2万+

Android安卓开发基础-ListView

介绍安卓控件ListView在java文件及xml文件中的使用

weixin_53743049的博客 730

保姆级教程:在Windows 10/11上安装配置KNIME 5.8.0(含中文文本库更新)

本文提供在Windows 10/11系统上安装配置KNIME 5.8.0的详细指南,包括中文文本库更新和性能优化方案。从环境准备、安装流程到中文文本处理能力强化,逐步指导用户搭建高效的数据分析环境,特别针对国内网络环境和中文用户需求提供实用解决方案。

weixin_29081101的博客 669

AI Agent开发第82课-手把手教你把paddleocr-vl做成mcp使其在DIFY里运行

本文详解如何将国产顶尖多模态 OCR 模型 PaddleOCR-VL 封装为标准 MCP(Model Calling Protocol)服务,并通过自研的 HTTP-based MCP Client 接入 Dify 1.10,实现 AI Agent 在对话中自动识别并调用 OCR 能力。该方案已在某头部保险公司真实业务流程中落地,使用了当前最先进的“Agentic AI 原生”设计思想。

打造全国最全的AI Agent开发知识领域的博客 1625

listview mysql 安卓_android ListView详解

在android开发中ListView是比较常用的组件,它以列表的形式展示具体内容,并且能够根据数据的长度自适应显示。抽空把对ListView的使用做了整理,并写了个小例子,如下图。列表的显示需要三个元素:1.ListVeiw 用来展示列表的View。2.适配器 用来把数据映射到ListView上的中介。3.数据 具体的将被映射的字符串,图片,或者基本组件。根据列表的适配器类型,列表分为三种,Ar...

weixin_39980129的博客 254

掌握 Unity 中的状态机:综合指南

最后,将拥有一个由状态机驱动的功能齐全的播放器控制器,可以集成到自己的项目中。此外,状态机有助于实现复杂的人工智能、玩家控制、动画系统等,从而形成更强大、更灵活的游戏架构。状态机是计算机科学和游戏开发中的一个基本概念,它通过定义一组有限的状态及其之间的转换来模拟实体的行为。你可以定义常见的状态行为,例如 Enter、Update 和 Exit 方法,确保整个状态机架构的一致性和连贯性。由于前面提到的状态类扩展了 BaseState 类,因此我们可以为具有不同状态的不同对象创建单独的类。

yolo模型训练找我,AI游戏合作找我 1452

安卓Android Studio 控件之 卡片式ListView效果

在安卓APP开发过程中,ListView是常用的数据展示控件,不过系统自带的样式过于单调,而且显示数据单一。下面介绍一个卡片式的ListView控件。同样是经过测试,拿来主义,根据步骤一步步就能实现。 首先总体介绍一下思路:还是使用ListView控件,但是样式需要自己定义一个xml文件,在ListView控件引用样式时调用自己定义的xml文件即可。 主要功能:以卡片样式显示数据,卡片内数据可以实现点击事件的操作。以便于下一步操作选中的数据。 先上效果图: 下面介绍实现过程: 1、在a...

jackiesky1206的博客 6404

RK3399平台开发系列讲解(内核入门篇)1.1、通过sysfs清楚了解设备的系统状况

文章目录1、不敢高声语,恐惊天上人:sysfs目的2、窥一斑而知全豹:sysfs目录介绍3、千丝万缕:sysfs中要素的关系4、数据观星:sysfs中相关结构体 1、不敢高声语,恐惊天上人:sysfs目的 我们想通过sys下面的目录和文件清楚的了解跑Liunx系统的嵌入式设备的系统状况。 2、窥一斑而知全豹:sysfs目录介绍 sysfs把连接在系统上的设备和总线组织成为一个分级的文件,它们可以由用户空间存取,向用户空间导出内核的数据结构以及它们的属性。sysfs的一个目的就是展示设备驱动模型中各组件.

内核笔记 1万+

【毕设级教程】从0到1实现基于YOLOv8的UA-DETRAC交通目标检测系统(含UI界面,助力智能交通毕设)

本项目基于YOLOv8模型和UA-DETRAC数据集开发了一个交通目标检测系统,包含数据处理、模型训练和可视化界面全流程。UA-DETRAC数据集包含多种交通场景下的车辆标注,通过格式转换适配YOLOv8训练要求。系统采用PyQt开发交互界面,支持图像检测、结果显示等功能。该项目技术路线清晰,既展现深度学习在智能交通中的应用,又提供完整的可视化展示方案,适合作为计算机视觉相关毕业设计选题。

m0_64661770的博客 149

android中的 listview控件,安卓基础之ListView控件

ListView控件ListView是我们Android中最重要的控件之一,是用于对数据进行列表展示的控件。ListView的特点: 屏幕上可以展示几个控件, ListView就初始化几个,节省内存,防止内存溢出。 通过使用convertView对创建的视图对象进行复用,ListView始终保持创建的对象个数为: 屏幕显示的条目的个数 + 1。 ListView自带ScrollV...

weixin_39832628的博客 951

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

listview mysql 安卓_Android ListView

Android ListView是一个组几个项目,并显示在垂直滚动列表。列表项会使用适配器自动插入到列表中,从内容源,如数组或数据库。一个适配器实际上UI组件和数据源之间的桥梁,填充数据到UI组件。适配器可以用来提供数据如:spinner,列表视图,网格视图等。ListView和GridView 是 AdapterView 的子类,它们可以填充绑定到一个适配器,它从外部源检索数据,并创建一个视图表...

weixin_33772892的博客 293

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

java 安卓 listview_Android 自定义ListView

本文讲实现一个自定义列表的Android程序,程序将实现一个使用自定义的适配器(Adapter)绑定数据,通过contextView.setTag绑定数据有按钮的ListView。系统显示列表(ListView)时,首先会实例化一个适配器,本文将实例化一个自定义的适配器。实现自定义适配器,必须手动映射数据,这时就需要重写getView()方法,系统在绘制列表的每一行的时候将调用此方法。ListVi...

weixin_35410816的博客 586

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

android listview添加headview,安卓开发从零开始

5、设置item点击事件 lv.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> arg0, View arg1, int position, long id) { //position 如果有headview position =0 的第一个为headview Toast.makeText(MainActivity.this, “positi

m0_64319298的博客 1296

android布局 listview,安卓布局如何让 listview 和listview上的布局一起滚动

xml布局如下 但是不能实现我说的listview 和上面布局一起滚动android:layout_width="match_parent"android:layout_height="match_parent"xmlns:app="http://schemas.android.com/apk/res-auto"android:orientation="vertical">android:l...

weixin_35433930的博客 277

安卓Android开发:listView+checkbox的简单实现

安卓Android开发:listView+checkbox的简单实现 项目要用到列表显示并实现每一个条目item的选择。参考网上的listView案例基本上都是在getview处用 holder 作tag来完成的。我用了一下但是在滚动过程中经常出现错乱。holder方案的思路就是只加载显 示部分的数据。这样做的优势是更高效,特别是item数据比较多的情况下。我这里用的方法是在调用数 据表格

jstaxi的专栏 958

Android Studio 安卓开发学习---双ListView布局、ListView适配器、ListView分类实现

前言 学校要求做安卓项目,想实现一个食堂点餐的app,初学Java,有很多不足,下面仅作为个人经验的分享。欢迎大佬的指点,也希望对后来的同学有用。 1. 双 ListView 布局 我碰到的第一个难题是双ListView如何实现,其实很简单,只需要在一个xml中,使用一个线性布局即可。 为了实现日后的双ListView联动这是必不可少的第一步,关于ListView联动我日后在写。 <?xm...

weixin_43990171的博客 1714

listview组件android,安卓基础之ListView控件

ListView控件ListView是我们Android中最重要的控件之一,是用于对数据进行列表展示的控件。ListView的特点: 屏幕上可以展示几个控件, ListView就初始化几个,节省内存,防止内存溢出。 通过使用convertView对创建的视图对象进行复用,ListView始终保持创建的对象个数为: 屏幕显示的条目的个数 + 1。 ListView自带ScrollV...

weixin_39536728的博客 332

安卓Android开发,左边listView右边Fragment切换页面

安卓Android开发,左边listView右边Fragment切换页面

m0_63222566的博客 2262

Android Studio安卓开发--ListView学习整理

Android Studio安卓开发--ListView学习整理: ListView的简单用法;定制ListView的界面;ListView的点击事件

gyeolhada的博客 3904
上一篇: Android ProgressBar
下一篇: Android 二级联动
G_MuHan
博客等级 码龄9年 31粉丝 38原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值