安卓界面组件----列表视图
来源:互联网 发布:运营商认证数据不正确 编辑:程序博客网 时间:2024/05/29 19:02
和特别的是:ListView不仅仅能够通过组件进行创建,还有通过开发者自己继承ListActivity实现。
一 使用ListView组件实现
作为组件,需要注意ListView的几个基本属性:
android:divider 为列表视图设置分隔条,分隔可以使用颜色分割,也可以使用drawable资源进行分隔
android:dividerHeight 设置分隔条的高度
android:entries 通过资源数组指定ListView列表项
android:footerDividersEnable 设置foot view之前是否设置分隔条;当次属性为true,可以通过addFooterView()方法设置footer view
android:headerDividersEnable 设置head view之前是否设置分隔条;当次属性为true,可以通过addFooterView()方法设置head view
实际操作:
1.布局文件添加列表视图,通过xml资源文件配置其显示内容
//在布局中添加的ListView,不指定资源文件的数据 <ListView android:id="@+id/listView1" android:divider="@drawable/divide" android:dividerHeight="3dp" android:footerDividersEnabled="true" android:headerDividersEnabled="true" android:layout_width="match_parent" android:layout_height="wrap_content" > </ListView>
//资源文件指定的数据<string-array name="data"> <item >first</item> <item >second</item> <item >third</item> </string-array>
运行效果:
2.通过适配器设置显示的内容
列表视图重要的是显示的内容:同Spinner一样,当布局xml文件没有指定要显示的内容时,可以通过设配器设置列图视表要显示的内容。
列图视表的使用分为两个步骤:1>创建适配器 2>将适配器关联给列图视表组件
创建适配器:适配器创建可以通过资源文件创建,也可以使用字符串数组创建。创建适配器过程和下拉选择框不同的是需要指定列图视表显示内容的形式(是否带复选框或单选框)
资源文件创建:
ArrayAdapter<CharSequence> a = ArrayAdapter.createFromResource(this, R.array.data, android.R.layout.simple_list_item_checked);
通过字符串数组创建:
String[] str = new String[]{"first","second","third"}; ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_checked,str);
绑定适配器:
ListView v = (ListView)findViewById(R.id.listView1); v.setAdapter(adapter);
注意:运行效果已经设置了显示内容的形式
3.实现监听
v.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> v, View arg1, int pos, long id) { String result = v.getItemAtPosition(pos).toString(); Toast.makeText(MainActivity.this, result, Toast.LENGTH_LONG).show(); } });
二 继承ListActivity实现
如果程序仅仅是要显示一个列表窗口,可以直接继承ListActivity实现。继承了ListActivity之后,onCreate()方法不需要setContentView()方法设置显示容器,ListActivity已经设置好了显示。这时候,仅仅给ListActivity配置适配器即可。
需要将ListActivity继承,之后添加设配器即可。关键代码:
public class MainActivity extends ListActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ArrayAdapter<CharSequence> a = ArrayAdapter.createFromResource(this, R.array.data, android.R.layout.simple_list_item_checked); setListAdapter(a); }
ListActivity的事件监听和Activity有所不同,ListActivity已经实现了监听事件,开发者将onListItemClick()覆盖即可。
@Overrideprotected void onListItemClick(ListView l, View v, int position, long id) { super.onListItemClick(l, v, position, id); String result = l.getItemAtPosition(position).toString(); Toast.makeText(MainActivity.this, result, Toast.LENGTH_LONG).show(); }
总结:和下拉列表视图类似,显示内容我们可以通过xml配置,也可以使用适配器适配。ListView效果的实现还可以继承ListActivity,ListActivity已经实现了Activity的方法,不需要设置setContentView(),事件监听方面覆盖原来的onListItemClick()
水平有限,请留言指教!
- 安卓界面组件----列表视图
- 安卓界面组件-----图片视图
- 安卓视图组件和容器组件
- 安卓界面常用组件
- 安卓界面组件---文版框
- 安卓高级组件------网格视图
- 安卓界面的下拉列表制作
- 安卓界面基本组件---按钮
- 安卓界面组件-----单选框复选框
- 安卓界面组件---下拉选择框
- 安卓界面组件----时间日期选择器
- 安卓组件------列表选择框
- 安卓组件------列表选择框
- 安卓组件------列表选择框
- 界面组件:列表
- 安卓界面高级组件-----拖动条和评星条
- 界面编程与视图(View)组件
- android界面编程与视图组件
- 每天一个adb命令:dumpsys命令详解
- NOI2011阿狸的打字机
- rocketMQ-linux环境部署安装和rocket-console搭建随笔
- c++ primer plus 第9章 内存模型和名称空间
- jsp页面中文乱码解决方案
- 安卓界面组件----列表视图
- ORB_SLAM2在Android上的移植过程
- 讲讲HashCode的作用
- mysql如何解决中文乱码问题
- ios for 高通Vuforia图像识别+AR(二)
- 【编程素质】设计模式-桥接模式
- 数据库笔记
- ERP学习笔记
- webx框架-依赖注入