无涯教程-Android - List View函数

Android ListView 是垂直滚动列表中显示的视图,使用 Adapter 从列表(如数组或数据库)中获取内容的列表项会自动插入列表中。

List View

适配器(Adapter)实际上是UI组件和将数据填充到UI组件中的数据源之间的桥梁,适配器保存数据并将数据发送到适配器视图,该视图可以从适配器视图获取数据,并在不同的视图上显示数据。

ListView 和 GridView 是 AdapterView 的子类,可以通过将它们绑定到 Adapter 来填充它们,该适配器检索来自外部源的数据,并创建一个表示每个数据条目的视图。

Android提供了Adapter的多个子类,这些子类可用于检索各种类型的数据并为AdapterView构建视图(即ListView或GridView)。常见的适配器是ArrayAdapter,Base Adapter,CursorAdapter,SimpleCursorAdapter,SpinnerAdapter和WrapperListAdapter。

List View - 属性

以下是特定于GridView的重要属性-

Sr.NoAttribute & 描述
1

android:id

这是唯一标识布局的ID。

2

android:divider

这是可绘制的或可在列表项之间绘制的颜色。

3

android:dividerHeight

这指定分隔线的高度。可以是px,dp,sp,in或mm。

4

android:entries

指定对将填充ListView的数组资源的引用。

5

android:footerDividersEnabled

当设置为false时,ListView将不会在每个页脚视图之前绘制分隔线。默认值是true。

6

android:headerDividersEnabled

设置为false时,ListView不会在每个标题视图之后绘制分隔线。默认值是true。

ArrayAdapter

当您的数据源是数组时,可以使用此适配器。默认情况下,ArrayAdapter通过在每个项目上调用toString()并将其内容放置在TextView中,为每个数组项目创建一个视图。假设您有一个要在ListView中显示的字符串数组,请使用构造函数初始化一个新的ArrayAdapter,以指定每个字符串和字符串数组的布局-

ArrayAdapter adapter = new ArrayAdapter<String>(this,R.layout.ListView,StringArray);

这是此构造函数的参数-

  • 第一个参数 this 是应用程序context上下文,在大多数情况下,请将其保留为 this 。

  • 第二个参数将在XML文件中进行布局定义,并为数组中的每个字符串 TextView组件 。

  • 最终参数是将在文本视图中填充的字符串数组。

创建数组适配器后,只需在 ListView 对象上调用 setAdapter(),如下所示-

ListView listView = (ListView) findViewById(R.id.listview);
listView.setAdapter(adapter);

您将在XML文件的res/layout目录下定义列表视图。对于无涯教程的示例,无涯教程将使用activity_main.xml文件。

ArrayAdapter - 示例

下面的示例将引导您完成简单的步骤,以展示如何使用ListView创建自己的Android应用程序。

以下是修改后的主要Activity文件 src/com.example.ListDisplay/ListDisplay.java 的内容。

package com.example.ListDisplay;import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.ArrayAdapter;
import android.widget.ListView;public class ListDisplay extends Activity {// Array of strings...String[] mobileArray = {"Android","IPhone","WindowsMobile","Blackberry","WebOS","Ubuntu","Windows7","Max OS X"};@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);ArrayAdapter adapter = new ArrayAdapter<String>(this, R.layout.activity_listview, mobileArray);ListView listView = (ListView) findViewById(R.id.mobile_list);listView.setAdapter(adapter);}
}

以下是 res/layout/activity_main.xml 文件的内容-

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"tools:context=".ListActivity" ><ListViewandroid:id="@+id/mobile_list"android:layout_width="match_parent"android:layout_height="wrap_content" ></ListView></LinearLayout>

以下是 res/values/strings.xml 的内容,以定义两个新的常量-

<?xml version="1.0" encoding="utf-8"?>
<resources><string name="app_name">ListDisplay</string><string name="action_settings">Settings</string>
</resources>

以下是 res/layout/activity_listview.xml 文件的内容-

<?xml version="1.0" encoding="utf-8"?>
<!--  Single List Item Design --><TextView xmlns:android="http://schemas.android.com/apk/res/android"android:id="@+id/label"android:layout_width="fill_parent"android:layout_height="fill_parent"android:padding="10dip"android:textSize="16dip"android:textStyle="bold" >
</TextView>

单击"运行Eclipse运行图标工具栏。 Android studio将应用程序安装在您的AVD上并启动它,如果设置和应用程序一切正常,它将在"Emulator"窗口中显示-

List View

SimpleCursorAdapter

当您的数据源是数据库Cursor时,可以使用此适配器,使用 SimpleCursorAdapter 时,必须指定用于 Cursor 中每一行的布局,以及Cursor中的获取哪些值显示。

如果要获取创建人员姓名和电话列表,则可以执行查询,该查询返回一个Cursor,其中包含每个人的一行以及姓名和电话列。然后,您创建一个字符串数组,该字符串数组为实图填充数据

String[] fromColumns = {ContactsContract.Data.DISPLAY_NAME, ContactsContract.CommonDataKinds.Phone.NUMBER};
int[] toViews = {R.id.display_name, R.id.phone_number};

实例化SimpleCursorAdapter时,传递用于每个输出的布局,包含输出的Cursor以及这两个数组-

SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, R.layout.person_name_and_number, cursor, fromColumns, toViews, 0);ListView listView = getListView();
listView.setAdapter(adapter);

然后,SimpleCursorAdapter使用所提供的布局为Cursor中的每一行创建一个视图,方法是将" from Columns"项插入相应的 toViews 视图。

Android 中的 List View函数 - 无涯教程网无涯教程网提供Android ListView 是垂直滚动列表中显示的视图,使用 Adapter 从列表(如数组或数据库)...https://www.learnfk.com/android/android-list-view.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/60304.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WordPress(3)会员插件安装

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、服务器中上传插件二、使用步骤1.启动插件前言 提示:会员插件的安装不能在网站后台插件中心中直接安装原因我还没有排查 原因:会导致网站停止运行 一、服务器中上传插件 二、使用步骤 …

Python钢筋混凝土结构计算.pdf-混凝土强度设计值

计算原理&#xff1a; 需要注意的是&#xff0c;根据不同的规范和设计要求&#xff0c;上述公式可能会有所差异。因此&#xff0c;在进行混凝土强度设计值的计算时&#xff0c;请参考相应的规范和设计手册&#xff0c;以确保计算结果的准确性和合规性。 代码实现&#xff1a; …

el-select 使用

案例&#xff1a; /* * label : 界面上展示的是哪个字段,我这里需要展示名称 * value : 绑定的字段&#xff0c;一般是id */<el-selectv-model"Form.BillNumber"placeholder"请选择"change"changeValue($event)"><el-optionv-for"…

ThePASS研究院|以Safe为例,解码DAO国库管理

本研究文章由ThePASS团队呈现。ThePASS是一家开创性的DAO聚合器和搜索引擎&#xff0c;在为DAO提供洞察力和分析方面发挥着关键作用。 Intro 随着去中心化自治组织&#xff08;DAOs&#xff09;的发展&#xff0c;它们被赋予了越来越多的角色和期望。在这种巨幅增长的背景下&…

ToBeWritten之VSOC安全运营

也许每个人出生的时候都以为这世界都是为他一个人而存在的&#xff0c;当他发现自己错的时候&#xff0c;他便开始长大 少走了弯路&#xff0c;也就错过了风景&#xff0c;无论如何&#xff0c;感谢经历 转移发布平台通知&#xff1a;将不再在CSDN博客发布新文章&#xff0c;敬…

论文阅读_医疗知识图谱_GraphCare

英文名称: GraphCare: Enhancing Healthcare Predictions with Open-World Personalized Knowledge Graphs 中文名称: GraphCare&#xff1a;通过开放世界的个性化知识图增强医疗保健预测 文章: http://arxiv.org/abs/2305.12788 代码: https://github.com/pat-jj/GraphCare 作…

Mac版JFormDesigner IDEA插件安装(非商业用途)

前言 仅供个人开发者使用&#xff0c;勿用作商业用途。 仅供个人开发者使用&#xff0c;勿用作商业用途。 仅供个人开发者使用&#xff0c;勿用作商业用途。 感觉做了这些年开发&#xff0c;怎么感觉市场越搞越回去了。桌面应用又成主流了&#xff1f; 甲方让做桌面客户端&am…

搭建个人备忘录中心服务memos、轻量级笔记服务

目录 一、源码 二、官网 三、搭建 四、使用 一、源码 GitHub - usememos/memos: A privacy-first, lightweight note-taking service. Easily capture and share your great thoughts. 二、官网 memos - Easily capture and share your great thoughts 三、搭建 docke…

Python Pyecharts 制图

基本图表 - pyecharts - A Python Echarts Plotting Library built with love. from pyecharts import options as opts from pyecharts.charts import Pie from pyecharts.faker import Fakerc (Pie().add("",[list(z) for z in zip(["7室1厅", "5…

MindsDB为许多不支持内置机器学习的数据库带来了机器学习功能

选择平台的首要原则是“靠近数据”,让代码靠近数据是保持低延迟的必要条件。 机器学习,特别是深度学习往往会多次遍历所有数据(遍历一次被称为一个epoch)。对于非常大的数据集来说,理想的情况是在存储数据的地方建立模型,这样就不需要大量的数据传输。目前已经有部分数据…

Java EE 突击 15 - Spring Boot 统一功能处理

Spring Boot 统一功能处理 一 . 统一功能的处理1.1 初级阶段 : 不断重复1.2 中级阶段 : 集成方法1.3 高级阶段 : Spring AOP1.4 超高级阶段 : Spring 拦截器准备工作实现拦截器自定义拦截器将自定义拦截器加入到系统配置 拦截器实现原理扩展 : 统一访问前缀添加 二 . 统一异常的…

leetcode 2483. Minimum Penalty for a Shop(商店的最少代价)

字符串customers只包含’Y’和’N’两种字母, 表示 i 时刻商店是否有客人来。 如果商店在 i 时刻处于开门状态&#xff0c;Y’的代价是0&#xff0c;N’的代价是1.&#xff08;开门了却没有客人就算损失&#xff09;。 反之&#xff0c;在 i 时刻处于关门状态&#xff0c;N’的…

AssemblyManager 程序集管理器

AssemblyManager 程序集管理器 程序执行中使用反射对框架的搭建有着强大的影响&#xff0c;如何管理程序集方便使用反射获取类型操作对象是本文章的重点 1.AssemblyInfo 对于一个程序集这里使用一个AssemblyInfo对象进行管理 Assembly &#xff1a;对应的程序集AssemblyTyp…

QT(8.30)常用类与组件,实现登录界面

1.作业&#xff1a; 完成一个登录界面(图片未附带): 头文件: #ifndef WIDGET_H #define WIDGET_H#include <QWidget>#include <QLineEdit>//行编辑器#include<QIcon>//图标#include<QLabel>//标签#include<QPushButton>//按钮#include<QIc…

如何在Spring Boot应用中使用Nacos实现动态更新数据源

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…

Prometheus监控(三)架构

文章目录 Prometheus架构图Prometheus生态圈组件Prometheus Serverclient librariesPushgatewayexporterAlartmanager Prometheus架构理解存储计算层采集层应用层 Prometheus架构图 Prometheus生态圈组件 Prometheus Server 主服务器&#xff0c;负责收集和存储时间序列数据 …

发布自己的npm包

1.初始化npm包 npm init 输入npm init后&#xff0c;一路默认即可初始化成功&#xff0c;如下&#xff1a; 初始化成功后会生成一个package.json文件 n&#xff08;以我的文件夹demo-npm-dir为例&#xff09; package.json配置如下&#xff1a; {"name": "n…

容器技术,1. Docker,2. Kubernetes(K8s):

目录 容器技术 1. Docker&#xff1a; 2. Kubernetes&#xff08;K8s&#xff09;&#xff1a; Docker和Kubernetes 容器的主要应用场景有哪些&#xff1f; 容器技术 有效的将单个操作系统的资源划分到孤立的组中&#xff0c;以便更好的在孤立的组之间平衡有冲突的资源使…

对于论文Semi-Supervised Classification with Graph Convolutional Networks,小白的学习理解

参考笔记&#xff1a;论文笔记&#xff1a;Semi-Supervised Classification with Graph Convolutional Networks_hongbin_xu的博客-CSDN博客 论文笔记&#xff1a;SEMI-SUPERVISED CLASSIFICATION WITH GRAPH CONVOLUTIONAL NETWORKS_semi supervised classification_饮冰l的博…

IO模型:阻塞和非阻塞

一、五种IO模型------读写外设数据的方式 阻塞: 不能操作就睡觉 非阻塞&#xff1a;不能操作就返回错误 多路复用&#xff1a;委托中介监控 信号驱动&#xff1a;让内核如果能操作时发信号&#xff0c;在信号处理函数中操作 异步IO&#xff1a;向内核注册操作请求&…