




已阅读5页,还剩37页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Android常用控件,基础篇,回顾与作业点评,简述Acvity的生命周期Acvity的启动方式如何在Activity间进行数据的传递,本章任务,使用Android开发使用时间组件使用Android开发使用进度条组件使用Android开发创建底部选项卡,本章目标,了解Android的组件层次结构掌握常用的日期时间类控件掌握常用的几个容器组件,Android组件的层次结构,UI组件都是View的子类,View有很多子类,它们之间存在树状的继承关系View及其子类结构图,Android组件的层次结构,继承关系TextView及其子类结构图,Android组件的层次结构,继承关系ViewGroup及其子类结构图其下的子类一般作为容器或布局来使用,Android组件的层次结构,继承关系FrameLayout及其子类结构图其下的子类通常作为容器或布局来使用,日期时间选择器,DatePicker/TimePickerDatePicker组件可用于输入日期,TimePicker组件可用来选择时间,只能输入小时和分,默认12小时制DatePicker使用onDateChangedListener监听器来获取用户的日期选择使用init对组件进行初始化使用getYear,getMonth,getDayOfMonth方法获得用户选择的年,月,日TimePicker使用onTimeChangedListener监听器获取用户的时间选择使用setIs24HourView设置是否以24小时制显示使用getCurrentHour获得当前的小时数使用getCurrentMinute获得当前的分钟数,日期时间选择器,DatePicker/TimePickerDatePicker组件可用于输入日期,TimePicker组件可用来选择时间,只能输入小时和分,默认12小时制DatePicker使用onDateChangedListener监听器来获取用户的日期选择使用init对组件进行初始化使用getYear,getMonth,getDayOfMonth方法获得用户选择的年,月,日TimePicker使用onTimeChangedListener监听器获取用户的时间选择使用setIs24HourView设置是否以24小时制显示使用getCurrentHour获得当前的小时数使用getCurrentMinute获得当前的分钟数,日期时间选择器,DatePicker/TimePicker示例,datePicker1.init(c.get(Calendar.YEAR),c.get(Calendar.MONTH),c.get(Calendar.DAY_OF_MONTH),newOnDateChangedListener()publicvoidonDateChanged(DatePickerview,intyear,intmonthOfYear,intdayOfMonth);timePicker1.setOnTimeChangedListener(newOnTimeChangedListener()publicvoidonTimeChanged(TimePickerview,inthourOfDay,intminute);,时钟组件,AnalogClock/DigitClockAnalogClock组件用来以表盘的方式显示当前时间,该表只有时针和分针,DigitClock组件以数字的方式显示当前时间可以显示时分秒,由于DigitClock继承TextView,可以使用TextView的属性,计时器组件,Chronometer和DigitalClock都继承TextView,但它不显示时间,它显示的是从某个起始时间开始,一共过去了多少时间默认情况下只能输出MM:SS或H:MM:SS的时间格式重要属性android:format:定义时间的格式如:hh:mm:ss重要方法setBase(longbase):设置倒计时起始时间参数为SystemClock.elapsedRealtime()方法返回的值为当前时刻setFormat(Stringformat):设置显示时间的格式start():开始计时stop():停止计时setOnChronometerTickListener(Chronometer.OnChronometerTickListenerlistener):当计时器改变时调用,计时器组件,Chronometer示例,publicvoidonStart(Viewview)chronometer.start();publicvoidonStop(Viewview)chronometer.stop();publicvoidonReset(Viewview)chronometer.setBase(SystemClock.elapsedRealtime();chronometer.setOnChronometerTickListener(newOnChronometerTickListener()publicvoidonChronometerTick(Chronometerchronometer)Stringtime=chronometer.getText().toString();Log.v(ChronometerDemo1,time););,练习时间组件,需求说明:日期时间选择器时钟组件计时器组件,完成时间:25分钟,共性问题集中讲解,常见调试问题及解决办法代码规范问题,共性问题集中讲解,进度条组件,ProgressBar当一个应用在后台执行时,前台界面就不会有什么信息,这时用户根本不知道程序是否在执行、执行进度如何、应用程序是否遇到错误终止等,这时需要使用进度条来提示用户后台程序执行的进度Android系统提供了两大类进度条样式长形进度条圆形进度条(大中小三种)默认是普通圆形进度条,是不确定Android进度条,进度条组件,多样式ProgressBar默认普通圆形ProgressBar大号圆形ProgressBar小号圆形ProgressBar,进度条组件,标题进度条进度条除了可以显示在Activity中外,还可以显示在标题中圆形进度条长方形进度条,/设置标题不确定性进度条风格requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);setContentView(R.layout.main);/显示标题不确定性进度条setProgressBarIndeterminateVisibility(true);,/设置标题进度条风格requestWindowFeature(Window.FEATURE_PROGRESS);setContentView(R.layout.main);/显示标题进度setProgressBarVisibility(true);/设置标题当前进度值为5000(标题进度最大值默认为10000)setProgress(5000);,注意代码顺序,可拖动的进度条组件,SeekBarSeekBar控件其实就是一个高级点的进度条,就像我们在听歌,看电影用的播放器上的进度条一样,是可以拖动的,可以改变进度的一个进度条控件SeekBar是ProgressBar的子类,这个组件不需要设置sencondaryProgress属性事件接口OnSeekBarChangeListener处理组件事件由以下三个方法publicvoidonStartTrackingTouch(SeekBarseekBar)按下滑杆后触发publicvoidonProgressChanged(SeekBarseekBar,intprogress,booleanfromUser)动滑杆开始滑动时触发publicvoidonStopTrackingTouch(SeekBarseekBar)松开滑杆时触发,可拖动的进度条组件,SeekBar示例,seekBar.setOnSeekBarChangeListener(newOnSeekBarChangeListener()publicvoidonStopTrackingTouch(SeekBarseekBar)publicvoidonStartTrackingTouch(SeekBarseekBar)publicvoidonProgressChanged(SeekBarseekBar,intprogress,booleanfromUser)textView=(TextView)findViewById(R.id.edit);inti=seekBar.getProgress();textView.setText当前进度:+i+%););,评分组件,RatingBarRatingBar是SeekBar和ProgressBar的扩展,用星星来评级如网上购物,对商家的产品和服务进行打分等常用属性android:numStarts用于评分的五角星数量android:rating当前的分数android:stepSize分数的增长单位,默认是0.5事件接口OnRatingBarChangeListener处理组件事件publicvoidonRatingChanged(RatingBarratingBar,floatrating,booleanfromUser),评分组件,RatingBar示例,publicvoidonRatingChanged(RatingBarratingBar,floatrating,booleanfromUser)finalintnumStars=ratingBar.getNumStars();mRatingText.setText(受欢迎度+rating+/+numStars);,评分组件,RatingBar属性Style用于为RatingBar设置不同的风格,一旦设置了style,就不可点击改变值,练习进度组件,需求说明:ProgressBarSeekBarRatingBar,完成时间:25分钟,共性问题集中讲解,常见调试问题及解决办法代码规范问题,共性问题集中讲解,滚动视图,当一个屏幕因为要显示的内容太多而显示不全时,我们可以使用滚动视图来解决这个问题垂直滚动视图ScrollViewScrollView可以用来实现垂直滚动的视图,当它内容组件的高度超过屏幕的高度时,就会在屏幕的右侧出现一个垂直方向的滚动条,通过单击手机上的上下按钮或者上下拂动屏幕可以查看未显示部分注意:在ScrollView标签中只能包含一个组件使用步骤在ScrollView标签中包含一个LinearLayout标签,并设置盖标签的android:orientation属性为vertical在LinearLayout中放置需要显示的组件,滚动视图,垂直滚动视图ScrollView示例ScrollView只能用来实现垂直滚动的视图,如果要实现水平滚动,需要水平滚动视图HorizontalScrollView,选项卡组件,当一个屏幕因为要显示的内容太多而显示不全时,除了使用滚动视图外,还可以使用选项卡组件选项卡TabHost选项卡类似于android系统默认提供的电话薄界面,选项卡可以方便的在窗口上放置多个标签页,每个标签页相当于获得了一个与外部容器相同大小的组件摆放区域选项卡是有多个Tab组成的,其中每个Tab都可以显示一个View或一个Activity,选项卡组件,选项卡TabHost使用步骤在界面中定义TabHost组件,并为该组件定义该选项卡的内容组件,为内容组件定义id,这些内容组件将要作为某个Tab选项的视图定义一个继承TabActivity的Activity调用TabActivity的getHost方法获得TabHost对象通过TabHost的相关方法来创建和添加选项卡newTabSpec(Stringtag)创建选项卡addTab(TabHost.TabSpectabSpec)添加选项卡每个Tab在切换的时候会产生一个事件,通过OnTabChangedListener监听,选项卡组件,选项卡TabHost示例-方式一,/取得TabHost对象mTabHost=getTabHost();/加载布局getLayoutInflater().inflate(R.layout.tabdemo0,mTabHost.getTabContentView(),true);/创建一个和当前TabHost关联的TabSpecTabSpecspec1=mTabHost.newTabSpec(tab_test1);/指定标签和图标作为当前Tab的指示符spec1.setIndicator(TAB1,getResources().getDrawable(R.drawable.icon_1);/设置当前Tab的内容spec1.setContent(R.id.textview1);/将当前Tab添加到TabHost中mTabHost.addTab(spec1);,mTabHost.addTab(mTabHost.newTabSpec(tab_test2).setIndicator(TAB2,getResources().getDrawable(R.drawable.icon_2).setContent(R.id.textview2);/设置当前显示哪一个标签mTabHost.setCurrentTab(0);mTabHost.setOnTabChangedListener(newOnTabChangeListener()publicvoidonTabChanged(StringtabId)Toast.makeText(getApplicationContext(),当前选中:+tabId+标签,Toast.LENGTH_SHORT).show(););,链式,选项卡组件,选项卡TabHost示例方式二,/取得TabHost对象mTabHost=getTabHost();/加载布局/getLayoutInflater().inflate(R.layout.tabdemo0,mTabHost.getTabContentView(),true);/创建一个和当前TabHost关联的TabSpecTabSpecspec1=mTabHost.newTabSpec(tab_test1);/指定标签和图标作为当前Tab的指示符spec1.setIndicator(TAB1,getResources().getDrawable(R.drawable.icon_1);/设置当前Tab的内容spec1.setContent(R.id.textview1);/将当前Tab添加到TabHost中mTabHost.addTab(spec1);,id的名称是系统定义的,选项卡组件,选项卡TabHost示例方式三Tab底部显示,注意顺序,选项卡组件,选项卡TabHost示例方式四设置关联Intent,/取得TabHost对象mTabHost=getTabHost();/创建一个和当前TabHost关联的TabSpecTabSpecspec1=mTabHost.newTabSpec(tab_test1);/指定标签和图标作为当前Tab的指示符spec1.setIndicator(TAB1,getResources().getDrawable(R.drawable.icon_1);/设置当前Tab的内容/spec1.setContent(R.id.textview1);spec1.setContent(newIntent(this,ClockDemo1.class);/将当前Tab添加到TabH
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年陪诊师考试技术能力试题及答案
- 2025年健康教育与促进工作者考试试题及答案
- 北京市门头沟区2024-2025学年八年级上学期期末考试生物考试题目及答案
- 2025年电视节目拍摄用无人机驾驶员笔试预测试题及解析
- 广西银行面试题库及答案
- 2025年从入门到精通放射医学技术面试全攻略及高频问题解析
- 样品前处理相关培训课件
- 2025年旅游规划与管理专业题库解析
- 2025年政策性银行招聘面试模拟题集进出口银行版
- 2025年村级建筑工地材料员招聘考试试题及解析
- 销售部区域划分管理办法
- 超声波龈下刮治术专题讲解
- 2025年电信传输工程师职称考试试题
- 2024-2025学年人教版八年级数学上册《全等三角形》综合训练练习题(含答案解析)
- 肾内科常见病诊疗与管理
- 口腔医生岗前培训课件
- 小学一年级升二年级暑假数学作业-58套计算
- 2025年思想政治理论知识测试与能力考试试题及答案
- 福利院消防培训课件
- 肩袖修复术后影像学评估的新技术
- 驾考题库及答案大全
评论
0/150
提交评论