Android入门第六篇之ListView (一)

Android入门第六篇之ListView (一)

分类: Android入门 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代码如下,很简单,也不需要多做解释了:

 

  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:

 

  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的源代码:

 

  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楼 lazycatsx 2013-05-21 08:23发表 [回复]
学习了,多谢分享
58楼 miaoran2014 2013-05-15 14:40发表 [回复]
很好,讲的很到位
57楼 lansehaiyang007 2013-04-28 11:56发表 [回复]
温习了知识,不错
56楼 kapaseker 2013-04-21 11:29发表 [回复]
据说看了帖子不回的···没有xiaoJJ
55楼 myjie0527 2012-11-04 14:43发表 [回复]
学习了,示例很棒!
54楼 YNCJDX_ZHQ 2012-10-04 11:18发表 [回复]
运行结果中,每个item后面的省略号代表什么?
53楼 lspj201007186 2012-08-27 09:27发表 [回复]
你好!我想问一下,怎么实现点击ListView里面的内容进入到另一个Activity里面。谢谢了!!!
Re: chenmeiling0 2012-11-13 15:00发表 [回复]
回复lspj201007186:intent 跳转
52楼 JennyJennifer 2012-08-23 15:57发表 [回复]
先谢谢啦!
51楼 guolong2008 2012-07-04 15:35发表 [回复]
经典分析啊
50楼 vekaco 2012-07-03 11:05发表 [回复]
楼主厉害
49楼 smallnickey 2012-06-29 11:39发表 [回复]
谢谢了。经常关注,学习了哦。
48楼 sunsh1989 2012-04-11 15:55发表 [回复]
犹如宋江及时雨,灰常适合,感谢LZ!
47楼 Mary881225 2012-03-11 13:12发表 [回复]
谢谢!受益匪浅。我正在全面研究ListView,这个算是入门吧。
46楼 lu_listen 2012-03-01 16:35发表 [回复]
学习了,顶一下!
45楼 lauphai 2011-12-20 00:03发表 [回复]
你的代码什么的,干净利落,很好的习惯啊,向你学习了。。。。
44楼 f330656066 2011-12-02 11:47发表 [回复]
谢谢!受益匪浅。
43楼 gaoyongqing 2011-11-26 15:15发表 [回复]
我用ArrayAdapter操作没有问题,但是换成simpleadapter一直报错
42楼 hurry70 2011-11-14 14:24发表 [回复]
Good share!
41楼 fansmi 2011-11-07 18:06发表 [回复]
可以在java文件中修改 my_listitem.xml 里面TextView 文字大小吗
Re: hellogv 2011-11-07 22:59发表 [回复]
回复fansmi:可以的,使用setLayoutParams()
40楼 fmcwc 2011-11-04 14:59发表 [回复]
谢谢楼主的分享。
不知道楼主有没有研究过在两个listview之间拖拽item,或者有这方面的资料。
Re: hellogv 2011-11-04 23:15发表 [回复]
回复fmcwc:可以做得到的,只是有点复杂,需要在ListView监听onTouch和全局监听dispatch touch events
39楼 mozei 2011-10-06 20:52发表 [回复]
如果只用XML的话,怎么把main.xml和my_listitem.xml关联起来?
Re: hellogv 2011-10-07 22:24发表 [回复]
回复mozei:什么意思?没看懂。。。
38楼 joelost 2011-09-28 15:45发表 [回复]
楼主V5
37楼 hzfuji001 2011-09-22 12:00发表 [回复]
dip 是不是 不能叫做 像素?
36楼 forevervar 2011-09-20 08:40发表 [回复]
java程序中的类是继承的Activity还是ListActivity,有什么不同吗?继承ListActivity的话貌似程序一直报错!
35楼 marenjun0611 2011-09-02 17:49发表 [回复]
问一下楼主,用ItemClickListenner监听的时候,如果用switch语句,那条件语句key中直接添加position行不行?
Re: hellogv 2011-09-04 13:55发表 [回复]
回复marenjun0611:这个试试就知道了,我很少用switch
34楼 wangliangfei 2011-09-01 23:08发表 [回复]
灰常犀利,懂了点了
33楼 manymore13 2011-09-01 22:48发表 [回复]
我总算是看明白了点......至于你信不信,反正我是信了....
32楼 walq1986 2011-08-31 15:45发表 [回复]
受益匪浅
感谢博主
31楼 dushijia 2011-08-26 18:07发表 [回复]
这是一个很好的博客网站,小弟受益匪浅呀,学习Android就靠它了!以后经常来!!!!
30楼 Marylo 2011-08-23 13:50发表 [回复]
支持~~
29楼 libin131420 2011-08-10 16:04发表 [回复]
这是一个很好的博客网站,小弟受益匪浅呀,学习Android就靠它了!以后经常来!!!!
28楼 libin131420 2011-08-10 16:04发表 [回复]
这是一个很好的博客网站,小弟受益匪浅呀,学习Android就靠它了!以后经常来!!!!
27楼 mtc1256 2011-07-27 16:33发表 [回复]
good...
26楼 huangdacang 2011-07-25 13:40发表 [回复]
不错,学习。
25楼 ZZZ123098 2011-07-25 09:41发表 [回复]
如果我控制ListView 只显示6个item ,继续添加的话,添加到最后一项。同时删除最前的那一项,如何实现呢?
24楼 sfshine 2011-07-23 17:49发表 [回复]
好犀利的內容!不會對不起你!
23楼 zhuzhuaipps 2011-07-05 16:37发表 [回复]
希望继续更新新内容!!!
22楼 wangqilin8888 2011-05-31 11:06发表 [回复]
[e10]
21楼 maryr 2011-05-13 14:50发表 [回复]
[e01][e03]
20楼 yuxlong2010 2011-05-03 16:52发表 [回复]
[e01][e03]
19楼 fangfangcs 2011-04-27 11:33发表 [回复]
[e03]十分感谢。努力学习中
18楼 jianwei824 2011-03-27 14:21发表 [回复]
请教: 为什么我的 findViewById 返回的是空呢?
Re: yjy951753 2011-08-03 11:36发表 [回复]
回复jianwei824:解决了。。。是估计你的ID写错了,系统通过ID每找到Listview的对象,所以就返回了空指针
Re: yjy951753 2011-08-03 11:24发表 [回复]
回复jianwei824:我也发现了这个问题,你解决了么
17楼 ckjacket 2011-03-15 11:25发表 [回复]
@Y___Y

android:layout_width = &quot;fill_parent&quot;
16楼 bujixiansheng 2011-03-10 20:14发表 [回复]
[e01]
15楼 Y___Y 2011-03-09 23:32发表 [回复]
点击ListView项目中右边文本空白怎么不响应点击事件,怎么才能做到响应呢?
14楼 lovelove000000 2011-03-01 17:57发表 [回复]
[e01]很清晰
13楼 woaiguandage 2011-01-14 10:48发表 [回复]
[e10][e10][e10]
[e10]我错了[e10]
[e10][e10][e10]
12楼 woaiguandage 2011-01-14 09:07发表 [回复]
在my_listitem.xml中的LinearLayout的android:orientation=&quot;vertical&quot; 应该是”horizontal“博主写错了吧
11楼 HappyYohn 2011-01-13 11:41发表 [回复]
[e03]
10楼 naive_monk 2011-01-10 23:00发表 [回复]
为什么我在用2.2时提示了错误啊,我是复制粘贴的啊[e07]
Re: windowxp5354 2012-05-22 11:03发表 [回复]
回复naive_monk:把下面这两句注释
ListView list = (ListView) findViewById(R.id.MyListView);
list.setAdapter(mSchedule);
改为 setListAdapter(mSchedule);就可以了,不知道为什么
9楼 reeve520 2010-12-02 19:26发表 [回复]
需要import哪些东西啊???
Re: xidiandj 2010-12-08 15:03发表 [回复]
回复 reeve520:eclipse 中 shift+ctrl+o 会把需要的import
8楼 freemancy 2010-11-07 00:48发表 [回复]
[e10][e01]
很好.收益了.
7楼 lincoln1234 2010-10-31 18:45发表 [回复]
应该怎样分别取出ItemText和ItemTitle的值呢
Re: hellogv 2010-10-31 20:44发表 [回复]
回复 lincoln1234:
一般是把值保存为数组,然后作为object保存到动态数组内,根据选到的Item序号再来读取ItemText和ItemTitle的值
Re: lincoln1234 2010-11-01 13:54发表 [回复]
回复 hellogv:我现在只会取出序号,但不知道应该取出对应的item中的两个值,请指教,谢谢
Re: hellogv 2011-08-27 11:03发表 [回复]
回复lincoln1234:这个。。。多练习BaseAdapter,在里面加入列表保存必须的一些数据。。。。BaseAdapter是GridView和ListView的关键中的关键!
6楼 zaqmko1987 2010-10-29 13:07发表 [回复]
[e01]
5楼 yelwen000 2010-10-28 11:21发表 [回复]
[e01]
4楼 maoxuchu 2010-08-22 23:08发表 [回复]
3dip 说为3个像素貌似不太合理
3楼 匿名用户 2010-04-19 13:42发表 [回复]
你好强大![e01]
2楼 metababy 2010-01-21 15:33发表 [回复]
期待更多的Android开发教程
1楼 zhangfl_irene 2009-10-27 13:07发表 [回复]
谢谢!受益匪浅。
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
个人资料
 
    • 访问:1868472次
    • 积分:12386分
    • 排名:第178名
    • 原创:127篇
    • 转载:15篇
    • 译文:0篇
    • 评论:3658条
我的微博
博客专栏
Android 天天向上

文章:29篇

阅读:790815
最新评论

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在风能领域,准确预测风速对于风电场的运行与管理至关重要。Matlab作为一个强大的数学计算和数据分析平台,被广泛应用于风速预测模型的构建。本文将深入探讨基于四种风速——随机风、基本风、阵风和渐变风的组合风速预测技术。 我们来理解这四种风速类型: 1. **随机风**:随机风是指风速呈现出随机性的变化,通常由大气湍流引起。在建模中,通常通过统计方法如高斯分布或Weibull分布来模拟这种不确定性。 2. **基本风**:基本风速是指在无特定扰动条件下的平均风速,它是长期观测结果的平均值,通常用于结构设计和风能评估。 3. **阵风**:阵风是短时间内风速显著增强的现象,对建筑物和风力发电机造成的主要威胁之一。阵风的预测涉及到风的脉动特性分析。 4. **渐变风**:渐变风是指风速随时间和空间逐渐变化的过程,常见于风向转变或地形影响下的风场变化。 在Matlab中,利用这四种风速类型进行组合预测,可以提高预测的准确性。预测模型可能包括以下几个步骤: 1. **数据收集与预处理**:收集历史风速数据,包括随机风、基本风、阵风和渐变风的数据,进行异常值检测、缺失值填充以及数据标准化。 2. **特征工程**:提取风速变化的相关特征,如平均值、标准差、极值、频率分布等,这些特征可能对预测有重要影响。 3. **模型选择**:可以选择多种预测模型,如时间序列分析(ARIMA、状态空间模型等)、机器学习算法(线性回归、决策树、支持向量机、神经网络等)或深度学习模型(LSTM、GRU等)。 4. **模型训练**:利用历史数据训练选定的模型,调整模型参数以优化性能,例如通过交叉验证来避免过拟合。 5. **模型验证与评估**:使用独立的测试集验证模型预测效果,常见的评估指标有均方误差(MSE)、平均绝对误差(MAE)和决定系数(R²)。 6. **组合预测**:结合四种风速的不同模型预测结果,可以采用加权平均、集成学习(如bagging、boosting)等方式,以提升整体预测精度。 7. **实时更新与动态调整**:实际应用中,模型需要不断接收新的风速数据并进行在线更新,以适应风场环境的变化。 通过以上步骤,可以构建一个综合考虑各种风速特性的预测系统,这对于风电场的功率输出预测、风电设备的维护计划以及电网调度都具有重要价值。然而,需要注意的是,每个风场的地理环境、气候条件和设备状况都有所不同,因此模型的建立应根据实际情况进行定制和优
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值