Android控件之ListView(一)
2015-10-27 15:22
555 查看
简介: ListView是Android开发中最常用的控件之一,它能够以列表的形式展示具体的内容,并且能够根据内容的长度在屏幕上自适应显示。
它既可以显示简单的文字信息,又可以显示图片与文字的丰富组合,还可以对点击事件作出处理。
实现ListView的方式有多种,在此总结一下ListView的几种实现方式。
简单文字显示:
如下图:
实现方式一: 将数据写入values文件加下的arrays.xml中,这种实现方式不需要在MainActivity中进行数据绑定。
1.0 如果values文件夹下没有arrays.xml文件,则新建arrays.xml
arrays.xml:
2.0 通过 android:entries=”@array/books”引入在arrays.xml中定义的books数据
activity_main.xml:
3.0 MainActivity中没有任何改动
MainActivity:
实现方式二: 通过 ArrayAdapter 绑定数据源
1.0 在layout文件夹下新建list_item.xml文件
list_item.xml:
2.0 在activity_main.xml中定义一个ListView控件
layout/activity_main.xml:
3.0 通过ArrayAdapter来绑定数据
MainActivity:
它既可以显示简单的文字信息,又可以显示图片与文字的丰富组合,还可以对点击事件作出处理。
实现ListView的方式有多种,在此总结一下ListView的几种实现方式。
简单文字显示:
如下图:
实现方式一: 将数据写入values文件加下的arrays.xml中,这种实现方式不需要在MainActivity中进行数据绑定。
1.0 如果values文件夹下没有arrays.xml文件,则新建arrays.xml
arrays.xml:
<?xml version="1.0" encoding="utf-8"?> <resources> <string-array name="books"> <item>朝花夕拾</item> <item>大学</item> <item>古文观止</item> <item>战国策</item> <item>程序员炼成记</item> </string-array> </resources>
2.0 通过 android:entries=”@array/books”引入在arrays.xml中定义的books数据
activity_main.xml:
<RelativeLayout 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" tools:context="com.lgl.listview.MainActivity" > <ListView android:id="@+id/listView" android:layout_width="fill_parent" android:layout_height="fill_parent" android:entries="@array/books" /> </RelativeLayout>
3.0 MainActivity中没有任何改动
MainActivity:
package com.lgl.listview; import android.app.Activity; import android.os.Bundle; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } }
实现方式二: 通过 ArrayAdapter 绑定数据源
1.0 在layout文件夹下新建list_item.xml文件
list_item.xml:
<?xml version="1.0" encoding="utf-8"?> <TextView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" > </TextView>
2.0 在activity_main.xml中定义一个ListView控件
layout/activity_main.xml:
<RelativeLayout 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" tools:context="com.lgl.listview2.MainActivity" > <ListView android:id="@+id/listView" android:layout_width="fill_parent" android:layout_height="fill_parent" /> </RelativeLayout>
3.0 通过ArrayAdapter来绑定数据
MainActivity:
package com.lgl.listview2; import android.app.Activity; import android.os.Bundle; import android.widget.ArrayAdapter; import android.widget.ListView; public class MainActivity extends Activity { private ListView listView; private String[] animals = new String[] {"狮子","老虎","大象","羊驼","山鹰"}; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); /** * 1.0 * 获取ListView的引用 * 新建适配器; 三个参数分别为:当前上下文、显示数据的list_item文件、数据源 * 绑定适配器 */ listView = (ListView) findViewById(R.id.listView); ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.list_item, animals); listView.setAdapter(adapter); /** * 2.0 * 此外,还可以通过ArrayAdapter的add方法动态添加数据 */ //listView = (ListView) findViewById(R.id.listView); //ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.list_item); //adapter.add("狮子"); //adapter.add("老虎"); //adapter.add("大象"); //adapter.add("羊驼"); //adapter.add("山鹰"); //listView.setAdapter(adapter); /** * 3.0 * 除了自定义list_item.xml文件来显示数据外,Android还为我们提供了系统自定义好的列表来显示数据 */ //listView = (ListView) findViewById(R.id.listView); //ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, animals); //listView.setAdapter(adapter); } }
相关文章推荐
- Android 定时器的实现方式(TimerTask、Handler)及 Handler使用解析
- 一篇很好的关于Android的本科毕业论文《基于android手机通讯录的设计与实现毕业论文》转自百度
- Android----AndroidStudio启动报错failed to create jvm error code -4的解决方法
- Android实战技巧:为从右向左语言定义复杂字串,代码和xml设置
- Android Crash
- android 图片加载和缓存开源项目 Picasso
- Android软件启动动画及动画结束后跳转的实现方法
- Android 调试native的crash和anr
- android的handler、looper、Message之间的关系
- 将android模拟器上的db文件拷贝到电脑上
- android的httopost请求405错误
- [转]Android 编程下 Touch 事件的分发和消费机制
- android__删除源码更换版本重新运行时报版本过低错误
- Android为ViewPager增加切换动画——自定义ViewPager
- [转]Android SDK与API版本的对应关系
- AndroidStudio编译错误
- Android2.2 API中文文档——View
- Android圆形图片带边框
- Android带日程安排的自定义日历控件
- Android 实现ListView的A-Z字母排序和过滤搜索功能,实现汉字转成拼音