仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2782|回复: 20
打印 上一主题 下一主题

[学习教程] IOS教程之Android之旅九 ExpandableList、SeekBar、RatingBar、DatePickerDialog控件具体先容仓 ...

[复制链接]
因胸联盟 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:37:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
继承自相应的不可变类比如NSMutableArray继承自NSArray他们都添加了可以改变对象内容的方法比如-(void)addObject:(id)anObject添加对象-(void)removeObject:(id)anObject删除对象上面只是一个大概的总结接上篇博客中的控件先容:
1、ExpandableListView,这是一个伸缩睁开页列表控件,效果以下:

<br>
上面让我们看看怎样完成的吧:
1、起首界说我们的结构文件,个中有我们的main.xml文件将我们的ExpandableListView控件到场出来,还要有我们页面初始化显现出来的group1、group2这些数据的结构文件,界说为group.xml,还要有点击睁开group1后child1data1等这些数据的结构文件,界说为child.xml,上面我们分离给它们举行界说:
main.xml:

  • <?xmlversion="1.0"encoding="utf-8"?>
  • <LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
  • android:layout_width="fill_parent"
  • android:layout_height="fill_parent"
  • android:orientation="vertical">

  • <ExpandableListView
  • android:id="@id/android:list"
  • android:layout_width="fill_parent"
  • android:layout_height="fill_parent"
  • android:drawSelectorOnTop="false"/>

  • <TextView
  • android:id="@id/android:empty"
  • android:layout_width="fill_parent"
  • android:layout_height="fill_parent"
  • android:text="NoData"/>

  • </LinearLayout>
在main.xml中到场我们的ExpendableListView控件下面的TextView中的android:text="NoData"是默许有数据的时分所显现的文本信息
group.xml:

  • <?xmlversion="1.0"encoding="utf-8"?>
  • <LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
  • android:layout_width="fill_parent"
  • android:layout_height="fill_parent"
  • android:orientation="vertical">
  • <TextView
  • android:id="@+id/groupTo"
  • android:layout_width="fill_parent"
  • android:layout_height="fill_parent"
  • android:paddingLeft="60px"
  • android:paddingTop="10px"
  • android:paddingBottom="10px"
  • android:textSize="26sp"
  • android:text="NoData"/>

  • </LinearLayout>
child.xml:

  • <?xmlversion="1.0"encoding="utf-8"?>
  • <LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
  • android:layout_width="fill_parent"
  • android:layout_height="fill_parent"
  • android:orientation="vertical">
  • <TextView
  • android:id="@+id/childTo"
  • android:layout_width="fill_parent"
  • android:layout_height="fill_parent"
  • android:paddingLeft="50px"
  • android:paddingTop="5px"
  • android:paddingBottom="5px"
  • android:textSize="20sp"
  • android:text="NoData"/>

  • </LinearLayout>
好了,把各部散布局界说好了,上面我们经由过程代码显现我们要的信息吧:
我们创立的Activity必需承继自:ExpendableListActivity

  • /**
  • *创立一个Activity,承继自ExpandableListActivity
  • *@authorAdministrator
  • *
  • */
  • publicclassMainActivityextendsExpandableListActivity{
  • @Override
  • publicvoidonCreate(BundlesavedInstanceState){
  • super.onCreate(savedInstanceState);
  • setContentView(R.layout.main);
  • //界说一个List,该List为一级条目供应数据
  • List<Map<String,String>>groups=newArrayList<Map<String,String>>();
  • Map<String,String>group1=newHashMap<String,String>();
  • group1.put("group","group1");
  • Map<String,String>group2=newHashMap<String,String>();
  • group2.put("group","group2");
  • groups.add(group1);
  • groups.add(group2);

  • //界说一个List,该List为第一个一级条目供应二级条目数据
  • List<Map<String,String>>child1=newArrayList<Map<String,String>>();
  • Map<String,String>child1Data1=newHashMap<String,String>();
  • child1Data1.put("child","child1Data1");
  • child1.add(child1Data1);
  • Map<String,String>child1Data2=newHashMap<String,String>();
  • child1Data2.put("child","child1Data2");
  • child1.add(child1Data2);

  • //界说一个List,该List为第二个一级条目供应二级条目数据
  • List<Map<String,String>>child2=newArrayList<Map<String,String>>();
  • Map<String,String>child2Data1=newHashMap<String,String>();
  • child2Data1.put("child","child2Data1");
  • child2.add(child2Data1);

  • //界说一个List,该List对象用来存储一切的二级条目数据
  • List<List<Map<String,String>>>childs=newArrayList<List<Map<String,String>>>();
  • childs.add(child1);
  • childs.add(child2);

  • /**
  • *天生一个SimpleExpandableListAdapter对象,参数先容
  • *1、以后高低文对象
  • *2、一级条目数据
  • *3、用来设置一级条目款式的结构文件
  • *4、指定一级条目标数据key,要与Map中的能够一样
  • *5、指定一级条目数据显现控件的id
  • *6、二级条目数据
  • *7、用来设置二级条目款式的结构文件
  • *8、指定二级条目标数据key,要与Map中的能够一样
  • *9、指定二级条目数据显现控件的id
  • */
  • SimpleExpandableListAdaptersela=newSimpleExpandableListAdapter
  • (this,groups,R.layout.group,newString[]{"group"},newint[]{R.id.groupTo},
  • childs,R.layout.child,newString[]{"child"},newint[]{R.id.childTo});
  • //将SimpleExpandableListAdapter对象设置给以后的ExpandableListActivity
  • setListAdapter(sela);
  • }
  • }
具体解答见代码中的正文部分,运转程序就能够看到我们之前谁人页面的效果了!
2、SeekBar和RatingBar:分离暗示可拖拽的进度条和星级评分条,显现效果以下:

<br>
信任人人看到图片后就应当晓得它所暗示的是甚么了,上面我们来看看它是怎样完成的吧,很复杂哦!
1、界说结构文件,main.xml在结构文件中到场:SeekBar和RatingBar控件:

  • <?xmlversion="1.0"encoding="utf-8"?>
  • <LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
  • android:layout_width="fill_parent"
  • android:layout_height="fill_parent"
  • android:orientation="vertical">
  • <TextView
  • android:layout_width="fill_parent"
  • android:layout_height="wrap_content"
  • android:text="测试SeekBar"/>
  • <SeekBar
  • android:id="@+id/seekBarId"
  • android:layout_width="fill_parent"
  • android:layout_height="wrap_content"/>

  • <TextView
  • android:layout_width="fill_parent"
  • android:layout_height="wrap_content"
  • android:text="测试RatingBar"/>
  • <!--numStars:初始化显现几颗星stepSize:挪动后增添或削减的巨细-->
  • <RatingBar
  • android:id="@+id/ratingBarId"
  • android:layout_width="wrap_content"
  • android:layout_height="wrap_content"
  • android:numStars="5"
  • android:stepSize="1.0"/>
  • </LinearLayout>
2、经由过程代码把持显现和到场响应的办法:

  • packagecom.harder.xin;

  • importandroid.app.Activity;
  • importandroid.os.Bundle;
  • importandroid.widget.RatingBar;
  • importandroid.widget.SeekBar;

  • publicclassMainActivityextendsActivity{
  • privateSeekBarseekBar=null;
  • privateRatingBarratingBar=null;

  • @Override
  • publicvoidonCreate(BundlesavedInstanceState){
  • super.onCreate(savedInstanceState);
  • setContentView(R.layout.main);
  • seekBar=(SeekBar)findViewById(R.id.seekBarId);
  • //设置SeekBar的最年夜值
  • seekBar.setMax(100);
  • //为进度条绑定监听器
  • seekBar.setOnSeekBarChangeListener(newSeekBarChangeListener());
  • ratingBar=(RatingBar)findViewById(R.id.ratingBarId);
  • //为评分条绑定监听器
  • ratingBar.setOnRatingBarChangeListener(newRatingBarChangeListener());
  • }

  • //监听器,监听进度条进度的改动
  • classSeekBarChangeListenerimplementsSeekBar.OnSeekBarChangeListener{
  • //当进度条进度产生改动的时分触发该事务
  • //fromUser是不是由用户触发,true则由用户触发,false,多是由程序把持,比方Handler
  • @Override
  • publicvoidonProgressChanged(SeekBarseekBar,intprogress,
  • booleanfromUser){
  • System.out.println("progress-->"+progress);
  • }

  • //当用户入手下手滑东滑块的时分触发的事务
  • @Override
  • publicvoidonStartTrackingTouch(SeekBarseekBar){
  • System.out.println("start-->"+seekBar.getProgress());
  • }

  • //当用户中断滑东滑块的时分触发的事务
  • @Override
  • publicvoidonStopTrackingTouch(SeekBarseekBar){
  • System.out.println("stop-->"+seekBar.getProgress());
  • }
  • }

  • classRatingBarChangeListenerimplementsRatingBar.OnRatingBarChangeListener{
  • //当Rating产生改动的时分触发该事务
  • @Override
  • publicvoidonRatingChanged(RatingBarratingBar,floatrating,
  • booleanfromUser){
  • System.out.println("rating-->"+rating);
  • }

  • }
  • }
信任人人看代码正文基础上就可以分明他们的意义了,这里就未几形貌了!!
3、DatePickerDialog和TimePickerDialog,见名之意,他们就是用来显现和设置日期和工夫的对话框咯,页面展现效果以下:

<br>
<br>
呵呵....他们完成办法也很复杂哦:
在main.xml中界说两个按钮,分离用来测试他们:

  • <?xmlversion="1.0"encoding="utf-8"?>
  • <LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
  • android:layout_width="fill_parent"
  • android:layout_height="fill_parent"
  • android:orientation="vertical">

  • <Button
  • android:id="@+id/DateButton"
  • android:layout_width="fill_parent"
  • android:layout_height="wrap_content"
  • android:text="显现和设置日期"/>

  • <Button
  • android:id="@+id/TimeButton"
  • android:layout_width="fill_parent"
  • android:layout_height="wrap_content"
  • android:text="显现和设置工夫"/>

  • </LinearLayout>
上面在代码中把持:

如果你现在开始学到编出像样的APPiOS5可能已经普及了可以直接用ARC(另之前对ARC的了解很粗浅现在开发程序完全可以直接ARCiOS4不支持的weak是有办法替代的用unsafe_unretained
小女巫 该用户已被删除
沙发
发表于 2015-1-21 07:12:54 | 只看该作者
中国如今已然发展成为一个软件大国,软件人才的数量跃居全球之首。当然,在苹果平台的开发领域,也保持了相当强劲的发展势头。然而,很多初入iOS开发门槛的开发者,
变相怪杰 该用户已被删除
板凳
发表于 2015-1-22 06:22:08 | 只看该作者
然而,在vmware软件环境下,安装Mac OS X操作系统也是一件非常复杂的事情,而且还有可能花费了大量时间,最后却跑不起来。笔者也是经过了大量的实践,
灵魂腐蚀 该用户已被删除
地板
发表于 2015-1-25 18:39:07 | 只看该作者
这个办法就是在WindowsXP或Win7的电脑上,使用vmware虚拟机来搭建一个真实的Mac OS X环境。
山那边是海 该用户已被删除
5#
发表于 2015-2-3 13:06:37 | 只看该作者
看《iPhone 4与iPad开发基础教程》,跟着一步步来
金色的骷髅 该用户已被删除
6#
发表于 2015-2-9 01:46:14 | 只看该作者
iPhone文件系统:创建、重命名以及删除文件,NSFileManager中包含了用来查询单词库目录、创建、重命名、删除目录以及获取/设置文件属性的方法(可读性,可编写性等等)。
再现理想 该用户已被删除
7#
发表于 2015-2-26 03:45:40 | 只看该作者
看完这个你就可以有多种选择来踏入做应用的阶段
只想知道 该用户已被删除
8#
发表于 2015-2-26 06:12:17 | 只看该作者
中国如今已然发展成为一个软件大国,软件人才的数量跃居全球之首。当然,在苹果平台的开发领域,也保持了相当强劲的发展势头。然而,很多初入iOS开发门槛的开发者,
若相依 该用户已被删除
9#
发表于 2015-3-4 10:59:41 | 只看该作者
最后在做项目的时候一定要认真对待,毕竟这个直接和你的就业挂钩,这也是锻炼你实际操作的能力。
精灵巫婆 该用户已被删除
10#
发表于 2015-3-11 09:03:23 | 只看该作者
培训时可以选择安卓,iOS,Java,因为实习的时候我选了安卓,当时实习时间只有三周,学的晕头转向,而java我也没学过,iOS的基础是C语言,这个大学里还是学过的,于是选择了iOS。
分手快乐 该用户已被删除
11#
发表于 2015-3-17 21:08:31 | 只看该作者
中国如今已然发展成为一个软件大国,软件人才的数量跃居全球之首。当然,在苹果平台的开发领域,也保持了相当强劲的发展势头。然而,很多初入iOS开发门槛的开发者,
因胸联盟 该用户已被删除
12#
 楼主| 发表于 2015-3-22 20:58:56 | 只看该作者
自从苹果公司开放iOS SDK以来,大量的国内外的软件开发者将关注的目光聚集在苹果的iOS平台上。由于iPhone和iPad自一出现就给人带来了颠覆性的感觉
柔情似水 该用户已被删除
13#
发表于 2015-3-27 12:06:42 | 只看该作者
到大三时,学院与我去培训的机构成立了实习基地,并让我们寒假去实习了一段时间,感觉还不错,于是在大四的时候去培训了
冷月葬花魂 该用户已被删除
14#
发表于 2015-4-1 11:17:21 | 只看该作者
每个行业都一样,想要一天学有所成是不可能的,一定要做好努力的准备,做ios不是简单的学会oc语言。不怕多走弯路,就怕不肯动手。
简单生活 该用户已被删除
15#
发表于 2015-4-1 21:20:50 | 只看该作者
iPhone文件系统NSFileManager讲解是本文要介绍的内容,主要是通过iphone文件系统来学习NSFileManager的使用方法,具体内容来看本文详解。
小魔女 该用户已被删除
16#
发表于 2015-4-11 08:10:08 | 只看该作者
看完这个你就可以有多种选择来踏入做应用的阶段
莫相离 该用户已被删除
17#
发表于 2015-4-12 16:03:03 | 只看该作者
培训时可以选择安卓,iOS,Java,因为实习的时候我选了安卓,当时实习时间只有三周,学的晕头转向,而java我也没学过,iOS的基础是C语言,这个大学里还是学过的,于是选择了iOS。
爱飞 该用户已被删除
18#
发表于 2015-4-17 21:12:13 | 只看该作者
在此,某不才愿将安装成功的Mac OS X系统的vmware虚拟机向有志学习iOS开发的各位学友们免费开放出来,经测试,可以在WindowsXP/Win7系统上完美运行,即便你的机器只有2GB内存。
透明 该用户已被删除
19#
发表于 2015-5-1 11:39:54 | 只看该作者
学习ios没什么捷径,关键在于多动手敲,曾看到前辈开玩笑说怎么快速学会某技术,答案是:“提高打字速度,快点写代码就能快点学会了”。
愤怒的大鸟 该用户已被删除
20#
发表于 2015-5-3 07:36:34 | 只看该作者
到大三时,学院与我去培训的机构成立了实习基地,并让我们寒假去实习了一段时间,感觉还不错,于是在大四的时候去培训了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-2 15:48

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表