博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android入门第六篇之ListView (一)
阅读量:4329 次
发布时间:2019-06-06

本文共 6751 字,大约阅读时间需要 22 分钟。

分类:
111825人阅读
(70)

本文来自http://blog.csdn.net/hellogv/

 

ListView是一个经常用到的控件,ListView里面的每个子项Item可以使一个字符串,也可以是一个组合控件。先说说ListView的实现:

1.准备ListView要显示的数据

2.使用 一维或多维 动态数组 保存数据;

2.构建适配器 简单地来说, 适配器就是 Item数组 动态数组 有多少元素就生成多少个Item;

3.把 适配器 添加到ListView,并显示出来。

接下来,看看本文代码所实现的ListView:

1

 

接下来,就开始UI的XML代码:

main.xml代码如下,很简单,也不需要多做解释了:

 

[xhtml]
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <LinearLayout   
  3.         android:id="@+id/LinearLayout01"   
  4.         android:layout_width="fill_parent"   
  5.         android:layout_height="fill_parent"   
  6.         xmlns:android="http://schemas.android.com/apk/res/android">  
  7.           
  8.         <ListView android:layout_width="wrap_content"   
  9.                   android:layout_height="wrap_content"   
  10.                   android:id="@+id/MyListView">  
  11.         </ListView>  
  12. </LinearLayout>  

 

my_listitem.xml的代码如下,my_listitem.xml用于设计ListView的Item:

 

[xhtml]
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <LinearLayout   
  3.         android:layout_width="fill_parent"   
  4.         xmlns:android="http://schemas.android.com/apk/res/android"   
  5.         android:orientation="vertical"  
  6.         android:layout_height="wrap_content"   
  7.         android:id="@+id/MyListItem"   
  8.         android:paddingBottom="3dip"   
  9.         android:paddingLeft="10dip">  
  10.         <TextView   
  11.                 android:layout_height="wrap_content"   
  12.                 android:layout_width="fill_parent"   
  13.                 android:id="@+id/ItemTitle"   
  14.                 android:textSize="30dip">  
  15.         </TextView>  
  16.         <TextView   
  17.                 android:layout_height="wrap_content"   
  18.                 android:layout_width="fill_parent"   
  19.                 android:id="@+id/ItemText">  
  20.         </TextView>  
  21. </LinearLayout>  

解释一下,里面用到的一些属性:

1.paddingBottom="3dip",Layout往底部留出3个像素的空白区域

2.paddingLeft="10dip",Layout往左边留出10个像素的空白区域

3.textSize="30dip",TextView的字体为30个像素那么大。

 

最后就是JAVA的源代码:

 

[java]
  1. public void onCreate(Bundle savedInstanceState) {  
  2.     super.onCreate(savedInstanceState);  
  3.     setContentView(R.layout.main);  
  4.     //绑定XML中的ListView,作为Item的容器  
  5.     ListView list = (ListView) findViewById(R.id.MyListView);  
  6.       
  7.     //生成动态数组,并且转载数据  
  8.     ArrayList<HashMap<String, String>> mylist = new ArrayList<HashMap<String, String>>();  
  9.     for(int i=0;i<30;i++)  
  10.     {  
  11.         HashMap<String, String> map = new HashMap<String, String>();  
  12.         map.put("ItemTitle""This is Title.....");  
  13.         map.put("ItemText""This is text.....");  
  14.         mylist.add(map);  
  15.     }  
  16.     //生成适配器,数组===》ListItem  
  17.     SimpleAdapter mSchedule = new SimpleAdapter(this//没什么解释  
  18.                                                 mylist,//数据来源   
  19.                                                 R.layout.my_listitem,//ListItem的XML实现  
  20.                                                   
  21.                                                 //动态数组与ListItem对应的子项          
  22.                                                 new String[] {
    "ItemTitle""ItemText"},   
  23.                                                   
  24.                                                 //ListItem的XML文件里面的两个TextView ID  
  25.                                                 new int[] {R.id.ItemTitle,R.id.ItemText});  
  26.     //添加并且显示  
  27.     list.setAdapter(mSchedule);  
  28. }  
 
查看评论
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 = &quot;fill_parent&quot;
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=&quot;vertical&quot; 应该是”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发表
谢谢!受益匪浅。
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
个人资料
 
    • 访问:1868472次
    • 积分:12386分
    • 排名:第178名
    • 原创:127篇
    • 转载:15篇
    • 译文:0篇
    • 评论:3658条
关于hellogv
我的微博
博客专栏

文章:29篇

阅读:790815
Blogroll
文章分类
  • (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)
展开

转载于:https://www.cnblogs.com/jeanschen/archive/2013/06/04/3117234.html

你可能感兴趣的文章
hdu--1698 Just a Hook(线段树+区间更新+懒惰标记)
查看>>
Python学习笔记-EXCEL操作
查看>>
创业心得
查看>>
PAT 甲级 1096 Consecutive Factors
查看>>
拓扑排序
查看>>
rtf格式 C#设置字间距 CharacterSpacing
查看>>
JS Date格式化为yyyy-MM-dd类字符串
查看>>
win10安装.net3.5 报错解决
查看>>
福大软工 · 最终作业 - 软件工程实践总结(个人)
查看>>
SSM整合XML版(Maven Project)
查看>>
时间序列分析六:截面数据和时序数据结合的多变量时序分析
查看>>
phpwind 统计代码位置
查看>>
Set up ruby debugging environment
查看>>
初识python
查看>>
Windows 10 部署Enterprise Solution 5.5
查看>>
二叉树 - 前、中、后序遍历
查看>>
Java 反射机制浅析
查看>>
切换svn登录账户
查看>>
oracle配置备份
查看>>
手游后台PVP系统网络同步方案总结
查看>>