您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > Android应用开发-“我的日记”的设计与实现
任务四“我的日记”的设计与实现ProgressBar与线程的结合Activity之间的跳转Activity的生命周期Android简单的数据存储文件存储掌握Android的ProgressBar控件的属性设定、使用方法;掌握Activity的生命周期、各状态的转化关系与对应的回调函数;掌握Intent的作用、重要属性、常见方法;理解简单数据存储SharedPreferences的使用场合、使用方法;掌握文件存储的常见使用方法。能够利用Handler与ProgressBar控件相结合演示进度;能够利用Intent的属性与方法实现Activity的跳转;能够利用SharedPreferences实现简单的数据存储;能够实现Android中的文件存储。任务简介任务分析支撑知识任务实施任务小结拓展训练任务简介分析知识实施小结拓展 进行程序演示,请同学们观察该应用实现了哪些功能?该应用需要哪些控件与Android知识点支撑?任务简介分析知识实施小结拓展 任务简介分析知识实施小结拓展TextViewEditTextCheckBox与SharedPreferencesButtonProgressBar与线程 Button与文件存储Activity进行跳转EditText与文件存储任务简介分析知识实施小结拓展本次任务涵盖以下支撑知识点:ProgressBar控件的使用;Activity生命周期与回调函数;Activity之间的跳转;文件存储;简单数据存储。支撑知识1.ProgressBar控件ProgressBar为进度条控件,通常是在用户等待程序运行结果等耗时较长的情况下,作为一个反馈机制,来告知用户目前的进展程度,避免用户误以为程序没有响应,从而提高程序的用户体验。1.1简介环形进度条1.2属性属性作用示例style设置ProgressBar进度条的风格style=“@android:style/Widget.ProgressBar.Horizontal”:水平进度条style=“@android:style/Widget.ProgressBar.Inverse”:进度条为反转样式的环形进度条style=“@android:style/Widget.ProgressBar.Large”:进度条为大环性进度条1.2属性属性作用示例android:indeterminate开启进度条的“不确定模式android:indeterminate=“true”:进度条会显示不停地在循环滚动的动画效果,但是不会显示实际的进度。android:indeterminateBehavior决定当进度条中的进度达到最大值的时候,此时进度条要显示的动画效果android:indeterminateBehavior=“repeat“:进度条中的进度达到最大值之后,将重新从0开始;android:indeterminateBehavior=“cycle”:进度条中的进度达到最大值之后,将保持现值,然后逐渐反向回退到0。1.2属性属性作用示例android:indeterminateDrawable设置进度条上的Drawable对象android:indeterminateDrawable=“@id/XXX”:XXX为图片资源名android:indeterminateOnly强制进度条的“不确定模式”android:indeterminateOnly=“true”:强制进度条为“不确定模式”android:progress设置进度条默认的进度值,取值必须为介于0和最大值之间的整数android:progress=0android:max设置进度条最大值android:max=“8方法作用示例intgetProgress()获得当前进度条的进度值intprogress=progressBar.getProgress();voidsetProgress(intprogress)设定进度条的当前进度progressBar.setProgress(0);voidsetMax(intmax)设定进度条的范围progressBar.setMax(200);1.3方法方法作用示例voidsetIndeterminate(booleanindeterminate)设置进度条是否处于“不确定模式”progressBar.setIndeterminate(true);finalvoidincrementProgressBy(intdiff)设置进度条的进度增加或是减少,当入参为正整数时,进度增加;当入参为负整数时,进度减少。progressBar.incrementProgressBy(-5);1.3方法演示如何创建ProgressBar控件;演示如何利用ProgressBar控件的属性与方法1.4示例演示支撑知识2.线程所有界面控件相关的操作,实际上都是由主UI线程(主用户界面线程)在负责运行。但有时候程序会执行一些耗时的操作,一般的解决方案是将耗时的操作交给另外一个子线程来执行,从而保证主UI线程的顺畅。2.1简介2.1简介子线程Thread:负责耗时的操作主UI线程:负责与用户操作交互Handler发送消息Handler接收消息,更新UIMessage休眠1秒Handler发送消息MessageHandler接收消息,更新UI休眠1秒Handler发送消息MessageHandler接收消息,更新UI方法作用示例Thread.Thread(Runnablerunnable)构造方法,用于创建子线程对象。Threadt=newThread(newRunnable(){publicvoidrun(){…}}Thread.start()运行线程thread.start();Thread.sleep(longtime)让线程休眠thread.sleep(1000);//休眠1秒2.2方法方法作用示例booleanHandler.sendMessage(Messagemsg)发送消息handler.sendMessage(newMessage());voidHandler.handleMessage(Messagemsg)接收处理消息handler.handleMessage(msg);2.2方法演示如何创建子线程;演示如何将线程与ProgressBar控件相结合,实现5秒的进度条显示2.3示例演示支撑知识3.Activity间的跳转Intent是两个Activity之间进行跳转的媒介。Android中,当一个Activity需要跳转到另外一个Activity时,就需要用到Intent了。Intent中文为“意图”,意味着Android程序在进行页面跳转时,只需告知系统它的“意图”:需要启动哪一个Activity。3.1Intent简介3.2属性-Action属性Action常量对应的字符串含义说明ACTION_VIEWandroid.intent.action.VIEW向用户显示数据ACTION_EDITandroid.intent.action.EDIT向用户提供编辑某个数据的途径ACTION_DIALandroid.intent.action.DIAL向用户显示一个电话拨号面板界面ACTION_MAINandroid.intent.action.MAIN标志着该Activity是某个Application应用程序的入口点ACTION_ATTACH_DATAandroid.intent.action.ATTACH_DATA指明附加信息给其他地方的一些数据ACTION_CALLandroid.intent.action.CALL向用户直接显示打电话的界面3.2属性-Data属性Data属性是用来向Action属性提供可操作的数据的采用Uri对象的格式,即scheme://host:port/path。content://contacts/people/1ACTION_VIEWcontent://contacts/people/1:显示id为1的联系人信息;ACTION_DIALcontent://contacts/people/1:将id为1的联系人电话号码显示在拨号界面中;ACITON_VIEWtel:123:显示电话为123的联系人信息;ACTION_VIEW:在浏览器中浏览谷歌网站。3.2属性-Category属性Category常量对应的字符串含义说明CATEGORY_DEFAULTandroid.intent.category.DEFAULTAndroid系统中默认的分类CATEGORY_HOMEandroid.intent.category.HOME设置该Activity为HomeActivityCATEGORY_PREFERENCEandroid.intent.category.PREFERENCE设置该Activity为参数面板3.2属性-Category属性Category常量对应的字符串含义说明CATEGORY_LAUNCHERandroid.intent.category.LAUNCHER设置该Activity为在当前应用程序启动器中优先级最高的Activity,通常与ACTION_MAIN配合使用CATEGORY_BROWSABLEandroid.intent.category.BROWSABLE设置该Activity能被浏览器启动CATEGORY_DEFAULTandroid.intent.category.DEFAULTAndroid系统中默认的分类CATEGORY_HOMEandroid.intent.category.HOME设置该Activity为HomeActivity3.2属性-Component属性指定了Component属性以后,Intent的其他所有属性都是可选的。这种方式的优点在于无需查找,直接调用目标组件,速度快捷。3.2属性-Extras属性Bundle对象Bundle类与Map类很相似,它可以放入多对key-value键值,这样在通过Intent对象进行Activity跳转时,就能够进行数据的传递了。3.3方法方法作用示例Intent.setAction(Stringaction)设置Action属性Intentintent=newIntent();intent.setAction(Intent.ACTION_WEB_SEARCH);Intent.setData(Stringdata)设置Data属性intent.setData(Uri.parse());Intent.setType(Stringtype)设置Type属性intent.setType(vnd.android.cursor.dir/contact);Intent.putExtras(Bundlebundle)设置Extra属性Bundlebundle=newBundle();bundle.putString(“KEY_HEIGHT”,”180”);bundle.putString(“KEY_WEIGHT”,”80”);intent.setExtra(bundle);3.3方法方法作用示例Intent.setClass(ContextpackageContext,Class?cls)明确intent跳转时的源Activity和目标ActivityIntentintent=newIntent();intent.setClass(context,targetActivity.class);setClassName(ContextpackageContext,StringclassName)明确intent跳转时的源Activity和目标Activityintent.setClassName(MainActivity.this,com
本文标题:Android应用开发-“我的日记”的设计与实现
链接地址:https://www.777doc.com/doc-5072377 .html