在手机实际应用中,我们常常需要列表来显示我们的信息,比如我们的联系人列表,短信信息列表等。在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"。可用的单位如pxpixel像素),dpdensity-independent pixels 与密集度无关的像素), spscaled 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

属性值必须设置为truefalse

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

android:headerDividersEnabled

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

属性值必须设置为truefalse

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


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

XML布局文件

<?xml version="1.0" encoding="utf-8"?>                     "

源代码:

@Override public void onCreate(Bundle savedInstanceState){  super.onCreate(savedInstanceState);  String[] contries= getResources().getStringArray(R.array.countries_arry);  setContentView(R.layout.activity_listview);  setListAdapter(new ArrayAdapter(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() {   @Override   public 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"?>

源文件设置xml文件

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

效果图



另外上面用到了数组string 的定义:在values/string.xml文件中定义如下:
            Bharain        Bangladesh        Barbados        Belarus        Belgium        Belize        Benin    
这样就可以在源代码中通过R.array.countries_arry引用

Toast:

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

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

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

常量

int LENGTH_LONG

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

参见

setDuration(int)

int LENGTH_SHORT

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

参见

setDuration(int)



更多相关文章

  1. android调试模式的操作技巧,调试BUG极快呀
  2. android自定义style主题样式
  3. android xml注意事项
  4. Android(安卓)Toast 详解
  5. Android运行时配置更改
  6. android 通过setContentView切换Activity的View,保存动态修改后
  7. [置顶] 我的Android进阶之旅------>Android中android:visibility
  8. Android四大组件 - Activity的生命周期和启动模式
  9. 关于Android的Animation使用(XML)

随机推荐

  1. Android Mac开发Android推荐软件
  2. android:layout_paddingLeft和android:la
  3. Android(安卓)NDK开发篇(一) windows免cygw
  4. Android引路蜂地图开发包
  5. Android Animation 大全
  6. Android(安卓)led灯实现大致流程
  7. Android客户端post请求服务器端实例
  8. Android中的线程机制
  9. 比較具体的handle机制
  10. Android面试题总结(一)