在手机实际应用中,我们常常需要列表来显示我们的信息,比如我们的联系人列表,短信信息列表等。在Android中通过ListView来实现。

ListView 的XML属性

属性名称

描述

android:choiceMode

规定此ListView所使用的选择模式。缺省状态下,list没有选择模式。属性值必须设置为下列常量之一:

none,值为0,表示无选择模式;

singlechoice,值为1,表示最多可以有一项被选中;

multichoice,值为2,表示可以多项被选中。

android:divider

规定List项目之间用某个图形或颜色来分隔。可以用"@[+][package:]type:name"或者"?[package:][type:]name"(主题属性)的形式来指向某个已有资源;也可以用"#rgb","#argb","#rrggbb"或者"#aarrggbb"的格式来表示某个颜色。

android:dividerHeight

分隔符的高度。若没有指明高度,则用此分隔符固有的高度。必须为带单位的浮点数,如"14.5sp"。可用的单位如px(pixel像素),dp(density-independent pixels 与密集度无关的像素), sp(scaled pixels based on preferred font size 基于字体大小的固定比例的像素), in (inches英寸), mm (millimeters毫米)。

可以用"@[package:]type:name"或者"?[package:][type:]name"(主题属性)的格式来指向某个包含此类型值的资源。

android:entries

引用一个将使用在此ListView里的数组。若数组是固定的,使用此属性将比在程序中写入更为简单。

必须以"@[+][package:]type:name"或者 "?[package:][type:]name"的形式来指向某个资源。

android:footerDividersEnabled

设成flase时,此ListView将不会在页脚视图前画分隔符。此属性缺省值为true。

属性值必须设置为true或false。

可以用"@[package:]type:name"或者"?[package:][type:]name"(主题属性)的格式来指向某个包含此类型值的资源。

android:headerDividersEnabled

设成flase时,此ListView将不会在页眉视图后画分隔符。此属性缺省值为true。

属性值必须设置为true或false。

可以用"@[package:]type:name"或者"?[package:][type:]name"(主题属性)的格式来指向某个包含此类型值的资源。

例子一:利用Android自带的List格式

XML布局文件

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical"android:layout_width="fill_parent"android:layout_height="fill_parent"android:paddingLeft="8dp"android:paddingRight="8dp"><ListViewandroid:id="@id/android:list"android:layout_width="fill_parent"android:layout_height="0dip"android:background="#FFFFFF"android:divider="#000000"android:dividerHeight="2dp"android:layout_weight="1"android:drawSelectorOnTop="false"/><TextViewandroid:id="@id/android:empty"android:layout_width="fill_parent"android:layout_height="fill_parent"android:background="#FF0000"android:text="No Data"/>"
</LinearLayout>

源代码:

@Overridepublic void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);String[] contries= getResources().getStringArray(R.array.countries_arry);setContentView(R.layout.activity_listview);setListAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_multiple_choice,contries));getListView().setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); //这里我们直接在源代码中设置选择模式,也可以在xml文件中进行配置
  getListView().setBackgroundColor(Color.WHITE);getListView().setOnItemClickListener(new OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> arg0, View view, int position,long id) {Toast.makeText(getApplicationContext(),((TextView) view).getText(), Toast.LENGTH_SHORT).show();}});}

ListView的选择模式有三种:
CHOICE_MODE_NONE:表示无选择模式;设置为无选择模式时,将不能选中Item项,但能响应ItemClick事件
CHOICE_MODE_SINGLE:表示最多可以有一项被选中
CHOICE_MODE_MULTIPLE:表示可以多项被选中
方法setListAdapter 设置ListView背后的数据。参数为ListAdapter,这里我们使用ArrayAdapter,该Adatper可以指定我们自己定义的Item对象。这里我使用系统已有的对象:android.R.layout.simple_list_item_single_choice 
一般的:
simple_list_item_single_choice     对应的选择模式为: CHOICE_MODE_SIGLE; (效果如图一)
simple_list_item_multiple_choice 对应的选择模式为: CHOICE_MODE_MULTIPLE (效果如图二)
simple_list_item_1                         对应的选择模式为: CHOICE_MODE_NONE (效果如图三)

自定义ListView 格式

建立描述list item格式的XML文件

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:paddingLeft="2dp"android:paddingRight="2dp" >
</TextView>

源文件设置xml文件

 @Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);String[] contries = getResources().getStringArray(R.array.countries_arry);setListAdapter(new ArrayAdapter<String>(this,R.layout.activity_mylistview, contries));getListView().setOnItemClickListener(new OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> arg0, View view,int position, long id) {Toast.makeText(getApplicationContext(),((TextView) view).getText(), Toast.LENGTH_SHORT).show();}});}

效果图

另外上面用到了数组string 的定义:在values/string.xml文件中定义如下:

    <string-array name="countries_arry"><item>Bharain</item><item>Bangladesh</item><item>Barbados</item><item>Belarus</item><item>Belgium</item><item>Belize</item><item>Benin</item></string-array>

这样就可以在源代码中通过R.array.countries_arry引用

Toast:

Toast是一种提供给用户简洁信息的视图。Toast类帮助你创建和显示该信息。

该视图已浮于应用程序之上的形式呈现给用户。因为它并不获得焦点,即使用户正在输入什么也不会受到影响。它的目标是尽可能已不显眼的方式,使用户看到你提供的信息。有两个例子就是音量控制和设置信息保存成功。

使用该类最简单的方法就是调用一个静态方法,让他来构造你需要的一切并返回一个新的 Toast 对象。

常量

int LENGTH_LONG

持续显示视图或文本提示较长时间。该时间长度可定制。

参见

setDuration(int)

int LENGTH_SHORT

持续显示视图或文本提示较短时间。该时间长度可定制。该值为默认值。

参见

setDuration(int)

转载于:https://www.cnblogs.com/dennytao/p/5351902.html

Android学习笔记ListView相关推荐

  1. android学习笔记----ListView和各种适配器简介

    学习笔记 目录 打气筒(LayoutInflater对象)介绍: ArrayAdapter用法: 关于具有自定义 ArrayAdapter 的示例应用见这里: SimpleAdapter用法: 关于L ...

  2. Android学习笔记-ListView

    今天主要是学习了ListView控件.先把代码粘一下. package com.eoeAndroid.list; import java.util.ArrayList; import java.uti ...

  3. 2月24日android学习笔记——ListView

    ListView 以垂直的形式显示所有的列表项 ListView只是容器,而里面的内容需要Adapter来负责提供每个"列表项"的组件. 在ListView的xml中,可以设置an ...

  4. Android学习笔记 2.5.3 实例——使用SimpleAdapter创建ListView 2.5.4 自动完成文本框(AutoCompleteTextView)的功能与用法

    Android学习笔记 疯狂Android讲义 文章目录 Android学习笔记 疯狂Android讲义 第2章 Android 应用的界面编程 2.5 第4组 UI组件:AdapterView及其子 ...

  5. 【转】 Pro Android学习笔记(二十):用户界面和控制(8):GridView和Spinner

    目录(?)[-] GridView Spinner GridView GridView是网格状布局,如图所示.在了解ListView后,很容易了解GridView.下面是例子的XML文件. <? ...

  6. 【转】Pro Android学习笔记(二五):用户界面和控制(13):LinearLayout和TableLayout...

    目录(?)[-] 布局Layout 线性布局LinearLayout 表格布局TableLayout 布局Layout Layout是容器,用于对所包含的view进行布局.layout是view的子类 ...

  7. Android学习笔记:Android基础知识点(不断更新中)

    1.Android学习笔记:OkHttp 2.Android学习笔记:更新UI的方法(UI线程和非UI线程) 3.Android学习笔记:Volley 4.Android学习笔记:Handler 5. ...

  8. Android学习笔记-常用的一些源码,防止忘记了

    Android学习笔记-常用的一些源码,防止忘记了... 设置拨打电话 StringdialUri="tell:"+m_currentTelNumble; IntentcallIn ...

  9. Android学习笔记 56. TabLayout 选项卡布局

    Android学习笔记 Android基础开发--布局 文章目录 Android学习笔记 Android基础开发--布局 56. TabLayout 选项卡布局 56.1 简介 56.2 TabIte ...

最新文章

  1. python使用箱图法和业务规则进行异常数据处理并检查预测使用的数据特征是否有字段缺失的情况并补齐
  2. Medusa(美杜莎)和Hydra(九头蛇)快速入门手册:01
  3. python做数据可视化视频_Python数据分析系列视频课程--玩转数据可视化
  4. 数据库访问性能优化法则
  5. C++学习笔记系列(一)
  6. .NET中的数据结构——表
  7. 鱼哥,我怕蛇,可以搞Python么?
  8. python回溯算法全排列_从全排列看回溯算法
  9. 泛型的意义与通配符理解
  10. 2020年 高教社杯 全国大学生数学建模竞赛【论文格式规范】
  11. x5maxl l android 6,Hi-Fi新纪元 4.75mm超薄vivo X5Max首测
  12. t分布 u分布 卡方分布_t分布曲线和正太分布,和z分布,和卡方分布,和方差分析的f分布曲线有什么区别?...
  13. WebSSH2 界面ssh
  14. 新版MacBookPro风扇狂转的问题
  15. 使用matlab求高阶累积量
  16. 文献翻译--《Siamese Regression Tracking With Reinforced Template Updating》--增强模板更新的孪生回归跟踪,IEEE-2021
  17. 常见UNIXLINUX系统
  18. driver nvidia web_nvidiawebdriver驱动
  19. 关于什么是大数据智能决策!摘自《大数据智能决策》自动化学报
  20. 我的时间管理——计划与总结的重要性

热门文章

  1. python怎么写中文至excel_[ Python爬虫实战 ] python 操作excel以及解决中文报错 - pytorch中文网...
  2. 【spring boot】 mybatis配置双数据源/多数据源
  3. android view xml,如何将View添加到XML布局android
  4. mybatis plus 链式编程查询
  5. 计算机专业核心技术,计算机系多媒体核心技术实验室建设专业方案(10页)-原创力文档...
  6. 学术海报poster模板_教你快速制作学术会议的海报
  7. 形而上者谓之道,形而下者谓之器
  8. 提交官方MapReduce作业到YARN
  9. 付费?是不可能的!20行Python代码实现一款永久免费PDF编辑工具
  10. 这些Python好书,助你开发一臂之力