本文来自http://blog.csdn.net/hellogv/
ListView是一个经常用到的控件,ListView里面的每个子项Item可以使一个字符串,也可以是一个组合控件。先说说ListView的实现:
1.准备ListView要显示的数据 ;
2.使用 一维或多维 动态数组 保存数据;
2.构建适配器 , 简单地来说, 适配器就是 Item数组 , 动态数组 有多少元素就生成多少个Item;
3.把 适配器 添加到ListView,并显示出来。
接下来,看看本文代码所实现的ListView:
接下来,就开始UI的XML代码:
main.xml代码如下,很简单,也不需要多做解释了:
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout
- android:id="@+id/LinearLayout01"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- xmlns:android="http://schemas.android.com/apk/res/android">
- <ListView android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:id="@+id/MyListView">
- </ListView>
- </LinearLayout>
my_listitem.xml的代码如下,my_listitem.xml用于设计ListView的Item:
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout
- android:layout_width="fill_parent"
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical"
- android:layout_height="wrap_content"
- android:id="@+id/MyListItem"
- android:paddingBottom="3dip"
- android:paddingLeft="10dip">
- <TextView
- android:layout_height="wrap_content"
- android:layout_width="fill_parent"
- android:id="@+id/ItemTitle"
- android:textSize="30dip">
- </TextView>
- <TextView
- android:layout_height="wrap_content"
- android:layout_width="fill_parent"
- android:id="@+id/ItemText">
- </TextView>
- </LinearLayout>
解释一下,里面用到的一些属性:
1.paddingBottom="3dip",Layout往底部留出3个像素的空白区域
2.paddingLeft="10dip",Layout往左边留出10个像素的空白区域
3.textSize="30dip",TextView的字体为30个像素那么大。
最后就是JAVA的源代码:
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- //绑定XML中的ListView,作为Item的容器
- ListView list = (ListView) findViewById(R.id.MyListView);
- //生成动态数组,并且转载数据
- ArrayList<HashMap<String, String>> mylist = new ArrayList<HashMap<String, String>>();
- for(int i=0;i<30;i++)
- {
- HashMap<String, String> map = new HashMap<String, String>();
- map.put("ItemTitle", "This is Title.....");
- map.put("ItemText", "This is text.....");
- mylist.add(map);
- }
- //生成适配器,数组===》ListItem
- SimpleAdapter mSchedule = new SimpleAdapter(this, //没什么解释
- mylist,//数据来源
- R.layout.my_listitem,//ListItem的XML实现
- //动态数组与ListItem对应的子项
- new String[] { "ItemTitle", "ItemText"},
- //ListItem的XML文件里面的两个TextView ID
- new int[] {R.id.ItemTitle,R.id.ItemText});
- //添加并且显示
- list.setAdapter(mSchedule);
- }
- 上一篇:
- 下一篇:
- 59楼 2013-05-21 08:23发表
- 学习了,多谢分享
- 58楼 2013-05-15 14:40发表
- 很好,讲的很到位
- 57楼 2013-04-28 11:56发表
- 温习了知识,不错
- 56楼 2013-04-21 11:29发表
- 据说看了帖子不回的···没有xiaoJJ
- 55楼 2012-11-04 14:43发表
- 学习了,示例很棒!
- 54楼 2012-10-04 11:18发表
- 运行结果中,每个item后面的省略号代表什么?
- 53楼 2012-08-27 09:27发表
- 你好!我想问一下,怎么实现点击ListView里面的内容进入到另一个Activity里面。谢谢了!!!
- Re: 2012-11-13 15:00发表
- 回复lspj201007186:intent 跳转
- 52楼 2012-08-23 15:57发表
- 先谢谢啦!
- 51楼 2012-07-04 15:35发表
- 经典分析啊
- 50楼 2012-07-03 11:05发表
- 楼主厉害
- 49楼 2012-06-29 11:39发表
- 谢谢了。经常关注,学习了哦。
- 48楼 2012-04-11 15:55发表
- 犹如宋江及时雨,灰常适合,感谢LZ!
- 47楼 2012-03-11 13:12发表
- 谢谢!受益匪浅。我正在全面研究ListView,这个算是入门吧。
- 46楼 2012-03-01 16:35发表
- 学习了,顶一下!
- 45楼 2011-12-20 00:03发表
- 你的代码什么的,干净利落,很好的习惯啊,向你学习了。。。。
- 44楼 2011-12-02 11:47发表
- 谢谢!受益匪浅。
- 43楼 2011-11-26 15:15发表
- 我用ArrayAdapter操作没有问题,但是换成simpleadapter一直报错
- 42楼 2011-11-14 14:24发表
- Good share!
- 41楼 2011-11-07 18:06发表
- 可以在java文件中修改 my_listitem.xml 里面TextView 文字大小吗
- Re: 2011-11-07 22:59发表
- 回复fansmi:可以的,使用setLayoutParams()
- 40楼 2011-11-04 14:59发表
- 谢谢楼主的分享。 不知道楼主有没有研究过在两个listview之间拖拽item,或者有这方面的资料。
- Re: 2011-11-04 23:15发表
- 回复fmcwc:可以做得到的,只是有点复杂,需要在ListView监听onTouch和全局监听dispatch touch events
- 39楼 2011-10-06 20:52发表
- 如果只用XML的话,怎么把main.xml和my_listitem.xml关联起来?
- Re: 2011-10-07 22:24发表
- 回复mozei:什么意思?没看懂。。。
- 38楼 2011-09-28 15:45发表
- 楼主V5
- 37楼 2011-09-22 12:00发表
- dip 是不是 不能叫做 像素?
- 36楼 2011-09-20 08:40发表
- java程序中的类是继承的Activity还是ListActivity,有什么不同吗?继承ListActivity的话貌似程序一直报错!
- 35楼 2011-09-02 17:49发表
- 问一下楼主,用ItemClickListenner监听的时候,如果用switch语句,那条件语句key中直接添加position行不行?
- Re: 2011-09-04 13:55发表
- 回复marenjun0611:这个试试就知道了,我很少用switch
- 34楼 2011-09-01 23:08发表
- 灰常犀利,懂了点了
- 33楼 2011-09-01 22:48发表
- 我总算是看明白了点......至于你信不信,反正我是信了....
- 32楼 2011-08-31 15:45发表
- 受益匪浅 感谢博主
- 31楼 2011-08-26 18:07发表
- 这是一个很好的博客网站,小弟受益匪浅呀,学习Android就靠它了!以后经常来!!!!
- 30楼 2011-08-23 13:50发表
- 支持~~
- 29楼 2011-08-10 16:04发表
- 这是一个很好的博客网站,小弟受益匪浅呀,学习Android就靠它了!以后经常来!!!!
- 28楼 2011-08-10 16:04发表
- 这是一个很好的博客网站,小弟受益匪浅呀,学习Android就靠它了!以后经常来!!!!
- 27楼 2011-07-27 16:33发表
- good...
- 26楼 2011-07-25 13:40发表
- 不错,学习。
- 25楼 2011-07-25 09:41发表
- 如果我控制ListView 只显示6个item ,继续添加的话,添加到最后一项。同时删除最前的那一项,如何实现呢?
- 24楼 2011-07-23 17:49发表
- 好犀利的內容!不會對不起你!
- 23楼 2011-07-05 16:37发表
- 希望继续更新新内容!!!
- 22楼 2011-05-31 11:06发表
- [e10]
- 21楼 2011-05-13 14:50发表
- [e01][e03]
- 20楼 2011-05-03 16:52发表
- [e01][e03]
- 19楼 2011-04-27 11:33发表
- [e03]十分感谢。努力学习中
- 18楼 2011-03-27 14:21发表
- 请教: 为什么我的 findViewById 返回的是空呢?
- Re: 2011-08-03 11:36发表
- 回复jianwei824:解决了。。。是估计你的ID写错了,系统通过ID每找到Listview的对象,所以就返回了空指针
- Re: 2011-08-03 11:24发表
- 回复jianwei824:我也发现了这个问题,你解决了么
- 17楼 2011-03-15 11:25发表
- @Y___Y android:layout_width = "fill_parent"
- 16楼 2011-03-10 20:14发表
- [e01]
- 15楼 2011-03-09 23:32发表
- 点击ListView项目中右边文本空白怎么不响应点击事件,怎么才能做到响应呢?
- 14楼 2011-03-01 17:57发表
- [e01]很清晰
- 13楼 2011-01-14 10:48发表
- [e10][e10][e10] [e10]我错了[e10] [e10][e10][e10]
- 12楼 2011-01-14 09:07发表
- 在my_listitem.xml中的LinearLayout的android:orientation="vertical" 应该是”horizontal“博主写错了吧
- 11楼 2011-01-13 11:41发表
- [e03]
- 10楼 2011-01-10 23:00发表
- 为什么我在用2.2时提示了错误啊,我是复制粘贴的啊[e07]
- Re: 2012-05-22 11:03发表
- 回复naive_monk:把下面这两句注释 ListView list = (ListView) findViewById(R.id.MyListView); list.setAdapter(mSchedule); 改为 setListAdapter(mSchedule);就可以了,不知道为什么
- 9楼 2010-12-02 19:26发表
- 需要import哪些东西啊???
- Re: 2010-12-08 15:03发表
- 回复 reeve520:eclipse 中 shift+ctrl+o 会把需要的import
- 8楼 2010-11-07 00:48发表
- [e10][e01] 很好.收益了.
- 7楼 2010-10-31 18:45发表
- 应该怎样分别取出ItemText和ItemTitle的值呢
- Re: 2010-10-31 20:44发表
- 回复 lincoln1234: 一般是把值保存为数组,然后作为object保存到动态数组内,根据选到的Item序号再来读取ItemText和ItemTitle的值
- Re: 2010-11-01 13:54发表
- 回复 hellogv:我现在只会取出序号,但不知道应该取出对应的item中的两个值,请指教,谢谢
- Re: 2011-08-27 11:03发表
- 回复lincoln1234:这个。。。多练习BaseAdapter,在里面加入列表保存必须的一些数据。。。。BaseAdapter是GridView和ListView的关键中的关键!
- 6楼 2010-10-29 13:07发表
- [e01]
- 5楼 2010-10-28 11:21发表
- [e01]
- 4楼 2010-08-22 23:08发表
- 3dip 说为3个像素貌似不太合理
- 3楼 2010-04-19 13:42发表
- 你好强大![e01]
- 2楼 2010-01-21 15:33发表
- 期待更多的Android开发教程
- 1楼 2009-10-27 13:07发表
- 谢谢!受益匪浅。
-
- 访问:1868472次
- 积分:12386分
- 排名:第178名
- 原创:127篇
- 转载:15篇
- 译文:0篇
- 评论:3658条
文章:29篇 阅读:790815 |
- (16)
- (21)
- (13)
- (9)
- (11)
- (6)
- (5)
- (27)
- (5)
- (24)
- (2)
- (8)
- (15)
- (129646)
- (111817)
- (80116)
- (58694)
- (55130)
- (46346)
- (45180)
- (43726)
- (41081)
- (40090)
-
: 看总结的这么调理,都可以写本书了,楼主太厉害了,是我辈学习之榜样,谢谢楼主
-
: bitmap 不加同步锁?
-
: 楼主在真机上怎么播放不了呢
-
: 楼主这个程序在真机上怎么不运行呢 什么原因呢
-
: 楼主可以再提供一个视屏播放的地址吗 Url
-
: 博主测试验证过吗,识别率有多高?要识别精准,得改用配准算法吧?
-
: @chairzzz:Java的数值型,布尔型,允许不初始化,虚拟机会默认初始化为“0”态
-
: 学习了,多谢分享
-
: 有源代码 案例吗 ???提供一份源码看看啊
-
: android手机摄像头可不可用opencv捕获手势,怎么做?
- (1)
- (1)
- (2)
- (1)
- (2)