无涯教程-Android - List View函数

news2024/11/26 10:41:32

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"};
   
   @Override
   protected 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" >

   <ListView
      android: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.coloradmin.cn/o/949081.html

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

相关文章

说说我最近筛简历和面试的感受。。

大家好&#xff0c;我是鱼皮。 都说现在行情不好、找工作难&#xff0c;但招人又谈何容易&#xff1f;&#xff01; 最近我们公司在招开发&#xff0c;实习社招都有。我收到的简历很多&#xff0c;但认真投递的、符合要求的却寥寥无几&#xff0c;而且都是我自己看简历、选人…

【ES6】Proxy的高级用法,实现一个生成各种 DOM 节点的通用函数dom

下面的例子则是利用get拦截&#xff0c;实现一个生成各种 DOM 节点的通用函数dom。 <body> </body><script>const dom new Proxy({}, {get(target, property) {return function(attrs {}, ...children) {const el document.createElement(property);for …

路由转发(详细理解+实例精讲)

系列文章目录 华为数通学习&#xff08;5&#xff09; 目录 华为数通学习&#xff08;5&#xff09; 前言 一&#xff0c;最长匹配原则 实例1&#xff1a; 实例2&#xff1a; 二&#xff0c;路由转发流程&#xff1a; 三&#xff0c;IP路由表小结&#xff1a; 总结 前…

公司新招了一个拿14K的测试员,而我工作3年才8K,凭什么?

最近我的好朋友给我分享了一个他公司发生的事&#xff0c;大概的内容呢就是&#xff1a;公司一位工作3年的测试员的工资还没有一个刚来的新人高&#xff0c;对此怨气不小&#xff0c;她来公司辛辛苦苦三年&#xff0c;三年内迟到次数都不超过5次&#xff0c;每天都是按时上下班…

WebGPT VS WebGPU

推荐&#xff1a;使用 NSDT编辑器 快速搭建3D应用场景 随着WebGPU的引入&#xff0c;Web开发发生了有趣的转变&#xff0c;WebGPU是一种新的API&#xff0c;允许Web应用程序直接访问设备的图形处理单元&#xff08;GPU&#xff09;。这种发展意义重大&#xff0c;因为 GPU 擅长…

如何买期权看多:期权交易技巧指南,一定要看!

首先我们要清楚在50ETF期权中有两个角色&#xff0c;分别是买方和卖方&#xff0c;两者互为对手方&#xff0c;买方也就是散户&#xff0c;卖方可以理解为机构&#xff0c;认购是看多&#xff0c;认沽是做空。下文介绍如何买期权看多&#xff1a;期权交易技巧指南&#xff0c;一…

理解 Databend Cluster key 原理及使用

Databend Cluster Key 是指 Databend 可以按声明的 key 排序存储&#xff0c;主要用于用户对时间响应比较高&#xff0c;同时愿意为这个 cluster key 进行额排序操作的用户。 Databend 只支持一个 Cluster key&#xff0c;Cluster key中可以包含多列及表达式。 基本语法 -- 语…

恒运资本:股票有认购和申购区别?

股票是一个非常复杂的金融概念&#xff0c;涉及到许多术语和概念&#xff0c;其间包含股票认购和股票申购。这两个概念是股票出资中非常重要的一部分&#xff0c;出资者需求了解它们的差异和使用方法&#xff0c;才干更好地进行股票出资。 认购和申购的界说 首要&#xff0c;咱…

嬴图Ultipa | 一文了解关于图数据库的一点儿干货

本篇包括以下内容点&#xff1a; 数据库主要技术分类 图是什么&#xff1f; 图的模式 图数据库 VS.关系型数据库 图数据库VS.其他NOSQL的对比 并非所有的图数据库都一样&#xff01; 根据Gartner预测&#xff0c;“到2025年&#xff0c;使用图技术进行数据和分析创新…

多个开源姿态检测模型项目,上手即用,实测可行!

编辑&#xff1a;OAK中国 项目来源&#xff1a;oakchina.cn 喜欢的话&#xff0c;请多多&#x1f44d;⭐️✍ ▌前言 Hello&#xff0c;大家好&#xff0c;这里是OAK中国&#xff0c;我是助手君。 我发现今年有不少朋友都想做姿态检测&#xff0c;正好我们也有不少客户做过这…

概念解析 | 认知媒介战:重塑信息战争的新纪元

注1:本文系“概念解析”系列之一,致力于简洁清晰地解释、辨析复杂而专业的概念。本次辨析的概念是:认知媒介战。 认知媒介战:重塑信息战争的新纪元 俄乌网络战争观察与思考:混合战争及其背后的信息战- 安全内参| 决策者的网络安全知识库 一、背景介绍 认知媒介战是一个新…

tsmc12nm innovus加endcap失败的原因分析

我正在「拾陆楼」和朋友们讨论有趣的话题&#xff0c;你⼀起来吧&#xff1f; 拾陆楼知识星球入口 重新create floorplan时加了flip first row就加上了endcap&#xff0c;所以一些情况下设置core2die也可以解决这个问题。 physical only的cell&#xff0c;endcap是要先加的&a…

零知识证明(zk-SNARK)(一)

全称为 Zero-Knowledge Succinct Non-Interactive Argument of Knowledge&#xff0c;简洁非交互式零知识证明&#xff0c;简洁性使得运行该协议时&#xff0c;即便statement非常大&#xff0c;它的proof大小也仅有几百个bytes&#xff0c;并且验证一个proof的时间可以达到毫秒…

Nature:AI新技术助力面部瘫痪患者思维交流

通过使用人工智能&#xff08;AI&#xff09;增强的脑机植入物&#xff0c;已经实现了两名瘫痪患者以前所未有的准确度和速度进行交流。 脑机接口将参与者的大脑信号转换为动画的语音和面部动作。来源&#xff1a;Noah Berger 在分别发表于8月23日的《Nature》&#xff08;IF20…

C语言:指针的运算

一、指针 或 - 整数 指针 或 - 整数表示指针跳过几个字节&#xff08;具体跳过几个字节由指针类型决定&#xff09; 本文不做具体讲解&#xff0c;详解跳转链接&#xff1a; 《C语言&#xff1a;指针类型的意义》 二、指针 - 指针 前提条件&#xff1a;指针类型相同并且指向同…

【C语言】每日一题(除自身以外数组的乘积)

添加链接描述&#xff0c;链接奉上 方法&#xff1a; 暴力循环:前缀积后缀积&#xff08;分组&#xff09;: 暴力循环: 暴力循换真的是差生法宝&#xff0c;简单好懂&#xff0c;就是不实用&#xff0c;大多数的题目都会超过时间限制&#xff08;无奈&#xff09; 思路&…

Go的数据结构-接口

接口的底层 iface记录数据的地址&#xff0c;接口类型&#xff0c;接口装载的数据是什么类型&#xff0c;装载的类型实现了什么方法&#xff08;类型断言&#xff09; 空接口

巨人互动|游戏出海游戏出海需要考虑哪些方面?

游戏出海是指将游戏产品推向国外市场&#xff0c;以扩大用户群体和增加盈利空间&#xff0c;那么要成功地进行游戏出海&#xff0c;需要考虑哪些方面呢&#xff1f;本文小编对此来讲讲吧&#xff01; 1、目标市场选择 选择适合游戏产品的目标市场是出海的首要考虑因素&#xf…

ASEMI逆变器专用整流桥GBU814规格,GBU814大小

编辑-Z GBU814参数描述&#xff1a; 型号&#xff1a;GBU814 最大峰值反向电压(VRRM)&#xff1a;1400V 平均整流正向电流(IF)&#xff1a;8A 正向浪涌电流(IFSM)&#xff1a;200A 工作接点温度和储存温度(TJ, Tstg)&#xff1a;-55 to 150℃ 最大热阻(RθJC)&#xff1…

SQL语言-01

SQL Structured Query Language 的简单介绍 SQL 中的书写规则 SQL 中的数据类型