Android应用开发-“我的日记”的设计与实现ppt课件.pptx
《Android应用开发-“我的日记”的设计与实现ppt课件.pptx》由会员分享,可在线阅读,更多相关《Android应用开发-“我的日记”的设计与实现ppt课件.pptx(88页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、任务四“我的日记”的设计与实现ProgressBar与线与线程的结结合Activity之间间的跳转转Activity的生命周期Android简单简单的数数据存储储文件存储储u掌握Android的ProgressBar控件的属性设定、使用方法;u掌握Activity的生命周期、各状态的转化关系与对应的回调函数;u掌握Intent的作用、重要属性、常见方法;u理解简单数据存储SharedPreferences的使用场合、使用方法;u掌握文件存储的常见使用方法。u能够利用Handler与ProgressBar控件相结合演示进度;u能够利用Intent的属性与方法实现Activity的跳转;u能够利用
2、SharedPreferences实现简单的数据存储;u能够实现Android中的文件存储。任务简介任务分析支撑知识任务实施任务小结拓展训练任务简介任务简介分析知识实施小结拓展 进行程序演示,请同学们观察该应用实现了哪些功能?该应用需要哪些控件与Android知识点支撑?任务简介分析分析知识实施小结拓展 任务简介分析分析知识实施小结拓展TextViewEditTextCheckBox与SharedPreferencesButtonProgressBar与线程 Button与文件存储Activity进行跳转EditText与文件存储任务简介分析知识知识实施小结拓展本次任务涵盖以下支撑知识点:本次
3、任务涵盖以下支撑知识点:uProgressBar控件的使用;uActivity生命周期与回调函数;uActivity之间的跳转;u文件存储;u简单数据存储。支撑支撑知识知识1.ProgressBar控件控件uProgressBar为进度条控件,通常是在用户等待程序运行结果等耗时较长的情况下,作为一个反馈机制,来告知用户目前的进展程度,避免用户误以为程序没有响应,从而提高程序的用户体验。1. 1简介环形进度条1. 2属性属性属性作用作用示例示例style设置ProgressBar进度条的风格 style=“android:style/Widget.ProgressBar.Horizontal”
4、:水平进度条style=“android:style/Widget.ProgressBar.Inverse”:进度条为反转样式的环形进度条style=“android:style/Widget.ProgressBar.Large”:进度条为大环性进度条1. 2属性属性属性作用作用示例示例android: indeterminate 开启进度条的“不确定模式 android: indeterminate=“true”:进度条会显示不停地在循环滚动的动画效果,但是不会显示实际的进度。android: indeterminateBehavior 决定当进度条中的进度达到最大值的时候,此时进度条要显示
5、的动画效果 android: indeterminateBehavior =“repeat “:进度条中的进度达到最大值之后,将重新从0开始;android: indeterminateBehavior =“cycle” :进度条中的进度达到最大值之后,将保持现值,然后逐渐反向回退到0。1. 2属性属性属性作用作用示例示例android:indeterminateDrawable 设置进度条上的Drawable对象android:indeterminateDrawable=“id/XXX”:XXX为图片资源名android:indeterminateOnly 强制进度条的“不确定模式” and
6、roid:indeterminateOnly=“true”:强制进度条为“不确定模式” android:progress 设置进度条默认的进度值,取值必须为介于0和最大值之间的整数 android:progress=0android:max设置进度条最大值 android:max=“8方法方法作用作用示例示例int getProgress() 获得当前进度条的进度值 int progress=progressBar.getProgress();void setProgress(int progress) 设定进度条的当前进度 progressBar.setProgress(0);void se
7、tMax(int max) 设定进度条的范围 progressBar.setMax(200);1. 3方法方法方法作用作用示例示例void setIndeterminate (boolean indeterminate) 设置进度条是否处于“不确定模式” progressBar. setIndeterminate(true);final void incrementProgressBy(int diff) 设置进度条的进度增加或是减少,当入参为正整数时,进度增加;当入参为负整数时,进度减少。 progressBar. incrementProgressBy(-5);1. 3方法u演示如何创建P
8、rogressBar控件;u演示如何利用ProgressBar控件的属性与方法1. 4示例演示支撑支撑知识知识2. 线程线程u所有界面控件相关的操作,实际上都是由主主UI线程(主用户界面线程)线程(主用户界面线程)在负责运行。u但有时候程序会执行一些耗时的操作,一般的解决方案是将耗时的操作交给另外一个子线程来执行,从而保证主UI线程的顺畅。2. 1简介2. 1简介子线程Thread:负责耗时的操作主UI线程:负责与用户操作交互Handler发送消息Handler接收消息,更新UIMessage休眠1秒Handler发送消息MessageHandler接收消息,更新UI休眠1秒Handler发送
9、消息MessageHandler接收消息,更新UI方法方法作用作用示例示例Thread.Thread(Runnable runnable)构造方法,用于创建子线程对象。 Thread t = new Thread(new Runnable() public void run() Thread.start() 运行线程 thread.start();Thread.sleep(long time)让线程休眠 thread.sleep(1000); /休眠1秒2. 2方法方法方法作用作用示例示例boolean Handler.sendMessage(Message msg)发送消息handler.s
10、endMessage(new Message();void Handler.handleMessage(Message msg)接收处理消息 handler.handleMessage(msg);2. 2方法u演示如何创建子线程;u演示如何将线程与ProgressBar控件相结合,实现5秒的进度条显示2. 3示例演示支撑支撑知识知识3. Activity间的跳转间的跳转uIntent是两个Activity之间进行跳转的媒介。uAndroid中,当一个Activity需要跳转到另外一个Activity时,就需要用到Intent了。Intent中文为“意图”,意味着Android程序在进行页面跳转
11、时,只需告知系统它的“意图”:需要启动哪一个Activity。3. 1 Intent简介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是某个Applica
12、tion应用程序的入口点ACTION_ATTACH_DATAandroid.intent.action. ATTACH_DATA指明附加信息给其他地方的一些数据ACTION_CALLandroid.intent.action.CALL向用户直接显示打电话的界面3. 2属性-Data属性属性uData属性是用来向Action属性提供可操作的数据的u采用Uri对象的格式,即scheme:/host:port/path。content:/contacts/people/1ACTION_VIEW content:/contacts/people/1:显示id为1的联系人信息;ACTION_DIAL c
13、ontent:/contacts/people/1:将id为1的联系人电话号码显示在拨号界面中;ACITON_VIEW tel:123:显示电话为123的联系人信息;ACTION_VIEW http:/:在浏览器中浏览谷歌网站。3. 2属性-Category属性属性Category常量常量对应的字符串对应的字符串含义说明含义说明CATEGORY_DEFAULTandroid.intent.category.DEFAULTAndroid系统中默认的分类CATEGORY_HOMEandroid.intent.category.HOME设置该Activity为Home ActivityCATEGOR
14、Y_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_DEFA
15、ULTandroid.intent.category.DEFAULTAndroid系统中默认的分类CATEGORY_HOMEandroid.intent.category.HOME设置该Activity为Home Activity3. 2属性-Component属性属性u指定了Component属性以后,Intent的其他所有属性都是可选的。u这种方式的优点在于无需查找,直接调用目标组件,速度快捷。 3. 2属性-Extras属性属性uBundle对象uBundle类与Map类很相似,它可以放入多对key-value键值,这样在通过Intent对象进行Activity跳转时,就能够进行数据的传
16、递了。3. 3方法方法方法作用作用示例示例Intent. setAction(String action)设置Action属性Intent intent = new Intent(); intent.setAction(Intent.ACTION_WEB_SEARCH); Intent. setData(String data) 设置Data属性intent.setData(Uri.parse();Intent. setType(String type) 设置Type属性intent.setType(vnd.android.cursor.dir/contact); Intent. putExt
17、ras(Bundle bundle)设置Extra属性Bundle bundle=new Bundle();bundle.putString(“KEY_HEIGHT”,”180”);bundle.putString(“KEY_WEIGHT”,”80”);intent.setExtra(bundle); 3. 3方法方法方法作用作用示例示例Intent. setClass (Context packageContext, Class cls) 明确intent跳转时的源Activity和目标Activity Intent intent = new Intent(); intent.setClas
18、s(context, targetActivity.class);setClassName(Context packageContext, String className) 明确intent跳转时的源Activity和目标Activity intent.setClassName(MainActivity.this, com.example.intent.SecondActivity );Context . startActivity(Intent intent) 根据intent启动某个Activity Intent intent = new Intent(); intent.setClas
19、s(context, targetActivity.class);startActivity(intent);u列举一些常见的Activity跳转案例u演示Intent的使用方法3. 4示例演示l1.创建一个布局文件l2.创建一个类继承自Activity,并绑定布局文件l3.AndroidManifest注册Activityl4.使用Intent跳转到Activity3. 5跳转至另外一个Activity的步骤支撑支撑知识知识4. Activity的生命周期的生命周期u活动状态:处于Activity栈的栈顶,用户启动应用程序或Activity之后,该Activity位于屏幕前台,用户可见,能获
20、得焦点(即用户可以操作它)。同一时刻只会有一个Activity处于活动状态;u暂停状态:该Activity位于前台,但是被另外一个处于“活动”状态的Activity(比如对话框风格的Activity)遮挡住一部分,没有焦点,用户不能直接对其进行输入操作,但界面依旧可见,该Activity的状态处于“暂停”状态。u停止状态:该Activity被其他Activity完全挡住,不再可见,也失去了焦点;u销毁状态:该Activity被终止。4. 1 生命周期4. 2 回调函数启动ActivityActivity停止状态Activity销毁状态Activity暂停状态Activity运行状态onCrea
21、te()onStart()onPause()onResume()onStop()onDestroy()onRestart()另一个Activity来到前台该Activity重返前台该Activity不可见该Activity重返前台u演示回调函数的执行4. 3示例演示支撑支撑知识知识5. Activity的文件存储的文件存储uAndroid手机中的文件(如文本、图片、音频视频)可以存储在手机内存中或是外部存储器SD卡中,Android中提供了标准的Java文件输入输出流(FileOutputStream、FileInputStream)的方式来对文件数据进行读写。u随着文件存储位置(内存、外部存
22、储器)的不同,我们获取Java文件输入输出流的方式并不一样。5. 1 简介/data/data/【包名】/files/mnt/sdcard/5. 1 相关的类FileFileOutputStreamFileInputStreamwrite方法read方法5. 2 重要方法方法方法作用作用示例示例FileOutputStream openFileOutput(String name,int mode)对于存储在手存储在手机内存中的文机内存中的文件件,获得标准的Java文件输出流 /获得了某个文件的输出流,文件数据只能被本应用程序访问FileOutputStream outputStream =
23、openFileOutput(filename, 0); /获得某文件的输出流,新的文件数据将以追加的方式写入到该文件中 FileOutputStream outputStream = openFileOutput(filename, Context.MODE_APPEND ); FileOutputStream构造方法根据File对象获取其Java文件输出流 FileOutputStream outputStream = new FileOutputStream(file); /参数为File对象5. 2 重要方法方法方法作用作用示例示例FileInputStream构造方法 openFil
24、eInput(String name)对于存储在手存储在手机内存中的文机内存中的文件件,获得标准的Java文件输入流 FileInputStream inputStream = openFileInput(filename); /参数为文件名FileInputStream构造方法根据File对象获取其Java文件输入流 FileInputStream inputStream = new FileInputStream(file); /参数为File对象5. 2 重要方法方法方法作用作用示例示例File (File dir, String name)对于存储在某个目录上的文件,我们在获得Java
25、文件输入输出流前,需要调用该方法来获得该文件所对应的File对象。File file = new File(Environment.getExternalStorageDirectory(), filename); /获得SD卡目录中的某个文件对象5. 2 重要方法方法方法作用作用示例示例static File Environment.getExternalStorageDirectory() 获取手机外部存储目录即SD卡对应的File对象 /在/mnt/sdcard目录下创建File对象File file = new File(Environment. getExternalStorageD
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Android 应用 开发 日记 设计 实现 ppt 课件
限制150内