版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1引言1.2安卓的概述1.2.1 An droid简介 1.22An droid平台特性2.2.3An droid用户界面构建2.2.4资源的获取和使用.33功能设计概述与需求分析4.3.1 软件功能设计4.3.2数据库设计5.3.3需求分析5.3.4用户分析用户要求具备基本功能53.3.2除基本功能外,可另曾特色功能 63.5系统体系结构7.4功能模块介绍7.4.3添加日记模块104.4编辑日志104.5添加设置闹钟12自学心得1.6参考文献1.71引言随着An droid 的崛起,智能手机的操作系统绝大数都是An droid系统。An droid 的成功,并不是什么巧合,An
2、 droid 所获得的成就,有 2个重要方面:1.A ndroid是一款开放源码的操作系统; 因此,人人都有可能成为 An droid 的开发人员,这样使得An droid 的应用丰富多彩。2.A ndroid注重用户体验;用户体验的提高,使得操作变得更加的简单方便。手机给我们带来了便利, 我们随身带着的手机可以集成许多的功能,其中就能够有日志的功能,因为方便携带所以我们不需要带上那保密性差,有容易遗失的日记本了,我们现在只需要用手机,就能够随时随地的记录下我们容易遗忘的事情,因此,我们设计了这么一款手机日志程序。本论文所设计与开发出的这款基于An droid 手机的日志,分析了 An dro
3、id系统的技术原理和实现策略,以更加合理和有效的方式实现了各个功能模块,最后将其有机结合在一起,成为一款实用的日志软件。本系统包括日志的添加, 修改,删除等操作,为了让其更加实用,我们还搭配了闹钟的功能,使得界面简洁清晰,使用方便且人性化。2 安卓的概述2.1 Android 简介An droid操作系统最初由Andy Rubin 开发,最初主要支持手机。2005年由Google收购注资,并组建开放手机联盟开发改良,逐渐扩展到平板电脑及 其他领域上。An droid的主要竞争对手是苹果公司的iOS以及RIM的BlackberryOS。2011年第一季度,An droid 在全球的市场份额首次超
4、过塞班系统,跃居全球第一。2011年11月数据,An droid占据全球智能手机操作系统市场52.5%的份额,中国市场占有率为58%。An droid 是一种以Lin ux为基础的开放源代码操作系统,主要使用于便携 设备。目前尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”。An droid 操作系统最初由Andy Rubin 开发,最初主要支持手机。2005年由Google收购注资,并组建开放手机联盟开发改良,逐渐扩展到平板电脑及其他领域上。An droid 的主要竞争对手是苹果公司的iOS以及RIM的BlackberryOS。2011年第一季度,An droid 在全球的市场份
5、额首次超过塞班系统,跃居 全球第一。2012年2月数据,An droid 占据全球智能手机操作系统市场 52.5% 的份额,中国市场占有率为68.4%。2.2 Android平台特性1、应用程序框架 支持组件的重用与替换。2、 Dalvik 虚拟机 专为移动设备优化。3、集成的浏览器 基于开源的WebKit 引擎。4、 优化的图形库 包括定制的2D图形库,3D图形库基于Ope nGL ES 1.0(硬件加速可选)。5、SQLite 用作结构化的数据存储。6、多媒体支持 包括常见的格式(如 MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF)。7、 GSM电话技
6、术(依赖于硬件)。8、 蓝牙 Bluetooth, EDGE, 3G,和 WiFi(依赖于硬件)。9、照相机,GPS,指南针,和加速度计(accelerometer ) (依赖于硬件)。10、丰富的开发环境 包括设备模拟器,调试工具,内存及性能分析图 表,和Eclipse 集成开发环境插件。2.3 Android 用户界面构建在An droid 平台下开发应用软件,最重要的是布局问题。一个好看而又简简洁的界面,是相当重要的,既能提高使用者的体验,又保证应用的高效执行。 An droid 生成用户界面有三种方式:xml配置生成、通过用户自己的界面接口 生成和直接用代码生成。对于一个 Activi
7、ty 应用来说,an droid.app.Activity类是一个最基本的功能单元。一个 Activity 实例可以做很多的事情,但是它本身无法显示在屏幕上,而是借助于View group和View,这两个是An droid 平台上最基本的两个用户界面表达单元。下面介 绍下主要的布局对象:线性布局(LinearLayout):以单一方向对其中的显显示对象进行排列显示。如以垂直排列显示,则布局管理器中将只有一列;如以水平排列显示,则布局管理器中将只有一行。同时,还可以对个别的显示对象 设置显示比例2。 表格布局(Table Layout):以拥有任意行列的表格对显示对象进行布局,每个显示对象被分
8、配到各自的单元格之中,但单元格的边框线不可见。绝对布局(Absolute Layout):允许以坐标的方式,指定显示对象的具体位置,左上角的坐标为(0,0),向下及向右,坐标值变大。这种布 局管理器由于对象的位置固定了,所以在不同的设备上,有可能会出现不一样的 显示效果。相对布局(Relative Layout):允许通过指定显示对象相对于其它显示对象或父级对象的相对位置来布局。一个按钮可以放于另一个按钮的右 边,或者可以放在布局管理器的中央。对于An droid 应用中的一个屏幕,它的屏幕元素是按层次结构来描述的。要将一个屏幕元素层次树绑定在一个屏幕上 显示,Activity会调用它的set
9、ContentView()方法并且传入这个层次树的根节点引用2.4 资源的获取和使用资源是外部文件(不含代码的文件),它被代码使用并在编译时编入应用程序。An droid支持不同类型的资源文件,包括 XML、PNG以及JPEG文件。它们在运行的时候被解析,XML文件根据描述不同有不同的格式。源代码以及XML文件将资源打包并编译进二进制文件,这种模式能使得资源更快的被加载。字符串也同样被压缩成更高效的模式由于这些原因,An droid 平台上可以有不同的资源类型。An droid 资源系统能跟踪所有非代码相关的应用程序。程 序开发者可以使用资源类来访问应用程序的资源,资源的实例通常和应用程序联
10、系在一起,可以通过 Context.getResources来访问。应用程序的资源在编译时就被编译到应用程序二进制代码里为了使用某个资源,程序开发者需要将它 放在对应的代码目录结构里,然后编译。作为编译过程的一部分,产生的资源代 号可以在源代码里使用,这就可以用编译器来验证程序代码和定义的资源是否相 符。An droid 的闹钟系统提供了警报和时间设置方面支持,其实现的硬件基础通常是实时时钟设备。在Linux内核代码中,需要有实时时钟设备驱动程序和An droid 的Alarm 驱动程序。警报器-实时时钟系统包含了 JNI和JAVA层的 接口,在JAVA应用程序层可以通过接口控制警报器方面的功
11、能。3功能设计概述与需求分析3.1 软件功能设计该系统的设计与实现主要包括以下几个方面的工作:1. 搭建基于An droid 系统平台的多功能日记本构架,设计包含了写日志, 我的日记本,闹钟和闹钟情景模式,四个功能模块的日记本系统体系。2. 对日记本系统四个功能模块逐一论述需求分析,构建每一模块的基本功能 和预期产生的效果。3. 米用面向对象的程序设计方法分别实现写日记、查看和修改日志、设定闹钟和修改闹钟选项四个功能模块。4. 分别对四个功能模块进行软硬件测试,在每一模块测试成功的基础上,完善整个日记本系统功能连调。基于An droid 系统手机开发的日记本软件界面友好,操作便捷,具有良好的扩
12、展性和可维护性。经过系统测试,该软件工作安全 可靠,可以稳定运行3.2 数据库设计该程序数据库是在 An droid 平台上执行Java代码,通过DVM编译来建立 的,由于整个SQLite数据库是非可视化操作,因此所有对数据库的操作都是通 过执行Java代码实现。且表的设计也尽量优化,没有错综复杂的关系,每张表 都是独立的,不存在任何约束,因此数据库也是独立数据库。3.3 需求分析日记本是很平常的东西,很多人都有记日记的习惯,有人记账,有人记事、 有人记下心情。随着计算机技术的发展,很多家庭都买了手机,开始上网,开始 使用电脑和手机来办公、打字等。所写现在也有很多的人在使用电脑说说, 写博 客
13、,发帖子等等,受此启发我就萌生了编写一个日记本,用手机来写日记的想法。很多事我们不想忘记,于是写进日记本里,多年后翻出来再看看,很是惬意。 大多数人都使用的是纸质的日记本, 这中日记很难保存,容易丢失,也容易遭到 水浸等物理破坏,这样我们的日记就丢了。同纸质的日记本相比较,用软件日记 本不仅环保,而且安全方便,不怕被别人偷看。软件日记本可以很方便的携带只 要存在手机里面就可以了。3.4 用户分析这个软件面向的用户是拥有手机的大众,而其具有写日记的习惯的人。用户 使用的软件必须简单容易使用,界面得体,在此基础上尽可能多的提供人性化功 能,丰富软件的内涵。同时软件必须尽量保证不会因用户的不当操作而
14、使用户受 到严重的经济、财产、精神损失。软件必须具有很强的可靠性,不会无故终止运 行、死机、退出等。3.3.1用户要求具备基本功能a编写日记:包括添加日记和取消b管理日记:包括保存及删除日记、按日期分组日记 c编辑闹钟:包括设定闹钟,和删除闹钟d设置魔石:包括设定闹钟的提醒方式和删除方式332除基本功能外,可另曾特色功能a闹钟音乐播放。b编辑闹钟提醒方式。3.5 系统体系结构系统主旨在建立系统的闹钟,日志等,主要有如下几个核心功能模块4功能模块介绍4.1欢迎界面来呈现,采用 TableRow 的添加联系人整个布局的主体采用默认的Lin earLayout好处是对齐很方便,为了整体的美观,大多数
15、情况都是用的Imageview 和Imagebutton控件显示,如下图的代码和图4-1所示。vlmageViewan droid:layout_marg in Top="50dp"android:layout_margin Left="19dp"an droid:layout_height="wrap_c ontent"an droid:layout_width="wrap_c on te nt"an droid:src ="drawable/title"an droid:c onten tD
16、escripti on= "stri ng/hello_world"/>vlmageButt onan droid:id="+id/picmak"an droid:layout_width="wrap_c on te nt"an droid:layout_height="wrap_c onten t"an droid:layout_marg in Top="130dp"android:layout_margin Left="150dp"an droid:src=&quo
17、t;drawable/p6"an droid:backgrou nd="#00000000"an droid:c onten tDescripti on叢的日紀*="str in g/hello_world"图4-14.2 主界面主界面里面就是通向其他界面的四个按钮,因为总体界面不是很大,所以我尝试使用了Horizo ntalScrollView控件,多数的代码都是由系统自动生成,我的工作就是给四个控件添加监听事件,如图 4-2-1,4-2-2 所示。图 4-2-1"记本图 4-2-24.3 添加日记模块点开写日记,即可添加日记,因为
18、日记需要保存信息,所以需要吧信息都保存在数据库中,我们首先要创建一个数据库,新建MyLiteHelper.java,然后创建一个数据库,数据库文件名称为my_no te.db,因为An droid的数据库是不是可视的,所以尽可能的把数据库能够书写的简单一点,部分代码如下。效果图如图4-3private SQLiteDatabase db;protected void on Create(Bu ndle saved In sta nceState) super .onCreate(savedInstanceState););imgbut1 ); imgbut2 ); houtui );setC
19、on te ntView(R.layout.activity_writeimgbut1 =(ImageButton) findViewByld(R.id. imgbut2 =(ImageButton) findViewByld(R.id. houtui =(ImageButton) findViewByld(R.id.w_tit );w_cont );w_tit =(EditText) findViewByld(R.id. w_co nt =(EditText) fin dViewById(R.id.db = new MyLiteHelper( this ).getWritableDataba
20、se();福 5554;f<为 m 3:00标题:输入内容:图4-34.4 编辑日志日志添加过后肯定需要有所改动,所以需要有添加、删除、修改的选项,而日志内容就需要接收之前存储的数据库。读取接收的部分代码如下。效果图如图4-4接收日志Intent inten t=getI nten t();id =inten t.getI ntExtra(String tit=inten t.getStri ngExtra(Stri ng con t=i nten t.getStri ngExtra("com.chao .no te.id",1);"com.chao. no
21、 te.tit""com.chao. note.c ont"););Stri ng datetime=i nte nt.getStr in gExtra("com.chao .no te.datetime");修改或者删除日志switch (argO.getld()case R.id. imgbut1_1 :Stri ng tit=edt_tit .getText().toStri ng().trim();Stri ng cont=edt_c ont.getText().toStri ng().trim();String sql= "
22、update my_note set title='" +tit+ "',content='" where id='" +id +""'+cont+ "'db .execSQL(sql);Toast. makeText(Show On eActivity.this ,"保存成功.",Toast. LENGTH_LON0show();fin ish();break ;case R.id. imgbut2_1 edt_tit .setText( edt_c on
23、t .setText( break ;:"");"");case R.id. imgbut3_1:AlertDialog.Builder builder= builder.setTitle("删除");builder.setIc on (R.drawable.new Builder(Show On eActivity.this );t_sc ); builder.setMessage( "是否删除"); builder.setPositiveButton("ok" , newDialogI nt
24、erface .On ClickListe ner() Overrideint which) public void onClick(Dialoglnterface dialog,/ TODOAuto-ge nerated method stub+idStri ng sql1="delete from my_n ote where id="db .execSQL(sqll);Toast. makeText (Show On eActivity.this ,"删除成功"Toast. LENGTH_LON0show();fin ish(););"否
25、 “,n ull );builder.setNegativeButt on( builder.create().show(); break ;case R.id. houtui_1 :fin ish();break ;03:01图4-44.5 添加设置闹钟闹钟与闹钟的情景模式是相互关联的,添加闹钟后可以再情景模式当中或者是闹钟设置当中选择提醒的方式,部分情景模式设置的代码如下,效果图如图4-5-1 和 4-5-2 所示。hours = 0;mi nutes = 0;c = Cale ndar.getl nsta nee();intent = get Inten t();isnew = inte
26、nt .get In tExtra( "MY_ALARM_TYPE", 2);/ 2表示新的,1 表示旧的type ="常规模式"if (isnew = 1) hours = intent.get In tExtra("hours" , 0);min utes = intent.getl ntExtra("min ute" , 0);c.set(Cale ndar.HOUR_OF_DAY hours );c.set(Cale ndar.MINUTE, minutes );num = intent.getlntExt
27、ra("num" , 0);type = intent.getStri ngExtra("type");id = in te nt.get In tExtra("id" , 0);tv .setText("你选定的时间是"+ hours + "时"+ minutes + "分"+ id );if ( type .equals("常规模式")radio one .setChecked( true );my_check =1; else if ( type .
28、equals("震动模式") radiotwo .setChecked( true ); my_check = 2; else if ( type .equals("静音模式") radiothree .setChecked( true ); my_check = 3;K»wCirtlEli图 4-5-2自学心得安卓应用程序设计中,我遇到了很多的问题,但同时我也收获很多,设计开 发过程初期,我一直都不清楚我要做一个什么样子的程序, 所以一开始都是漫无 目的的去做着登录界面,最近的几周都有考试,设计不是没有进展,只是比较缓 慢,后来我发现我总是莫
29、名的忘记一些事情,真巧最近有安卓程序设计,想着想着我就开始着手制作起日志和闹钟的程序了。但是,刚开始并不能预测难度,跟着书本我学习了许多控件的用法,先实现基本的逻辑框架,和界面框架,然后在 此基础上进一步完善丰富,设计制作的过程中很多的函数、属性、成员名都是英 文的,甚至连应用软件Eclipse也只有英文版的,大感头疼的我只能自己去翻英 汉字典,或者网上查找。首先遇到的问题便是事件监听, 我之前虽然做过类似的 JAVA课程设计,但我并没有好好的掌握,自己的程序完成后产生大量的错误, 最后还是迫不得已去使用网上已有的源代码和脚本,经过几番的调试,我终于算是完成第一个界面。一开始我用butt on
30、做的界面,因为方便使用,很好的布局, 但是每当扩充一种功能时,为了使界面整体美观,我换成了imagebutt on,界面变得简单,使用方便。这次的自主学习中我学会了设置安装环境, 也基本掌握了安卓的开发方法及 基本流程。在本次开发过程中,安卓的设计中还需要用到的XML和SQL的语言,主要用到的知识有Activity 的使用,在程序中用到了多个窗口,因而需创建多 个Activity 。主要是用于多个Activity 之间的跳转。在开发期间,我学会了有 目的的去学习一些将要用到的东西, 仔细地考虑工作流程的规律和步骤, 充分利 用手中的开发工具,利用其所具备的功能,尽量使自己的开发在代码上实现少而
31、 精确、让用户能够尽量简单地进行操作。但是在检测过程中,还是出现了很多的不足之处,这些都是要在今后的工作中需要努力改进和完善的。在这次程序开发设计中,我也难免会遇到不少困难,这主要是由于我对所用 的开发环境并不是很熟悉,开发软件的经验不足。安卓开发用的语言是java,这次开发对我来说可以算是一次锻炼, 整个开发过程并虽然不是很顺利,却使我 从中充分体会到学习的快乐,开发的程序也在一步步得到完善。虽然我只能完成一些基本的功能,好多设想都未实现,但是当我第一次在我的手机上用到了我 自己开发的程序,我的顿时信心大增,整个学习的过程变得让人满足和愉悦。参考文献1 .王保罗Java面向对象程序设计M.北
32、京:清华大学出版社,2003年2 杜波依斯.MySQL技术内幕M.第4版.人民邮电出版社,2011年3 熊刚.基于.Android的智能手机的设计与实现D.武汉理工大学,20104 靳岩,姚尚朗.Android发入门与实践D.人民邮电出版补,2009附录:程序package com.chao.adapter;import java.util.List;import com.chao.model.MyAlarm;import com.chao.note.R;import android.content.Context;import android.view.Layoutlnflater;impo
33、rt android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.TextView;public class MyAlarmAdapter extends BaseAdapter private Context context;private List<MyAlarm> data;List<MyAlarm>public MyAlarmAdapter(Contextcontext,data) this.context = co
34、ntext;this.data = data;Overridepublic int getCount() / TODO Auto-generated method stubreturn data.size();Overridepublic Object getItem(int arg0) / TODO Auto-generated method stub return data.get(argO);Overridepublic long getItemId(int arg0) / TODO Auto-generated method stubarg2) t.activity_alar mist
35、_item,null);view.findViewByld(R.id.alarm_type);view.findViewByld(R.id.alarm_time);"+ma.getMinute()+" 分");package com.chao.model;public class MyAlarm return argO;Overridepublic View getView(int arg0, View arg1, ViewGroup/ TODO Auto-generated method stubView view;if(arg1!=null)view=arg1
36、;elseview=Layoutlnflater.from(context).inflate( R.l ayouTextView type=(TextView)TextView time=(TextView)MyAlarm ma=data.get(arg0);type.setText("模式:"+ma.getType();time.setText("所设置的时间:"+ma.getHours()+"时return view;private int id;private String type;private int num;private int
37、 hours;private int minute;int minute) public MyAlarm(int id, String type, int num, int hours,this.id = id;this.type = type;this.num = num;this.hours = hours;this.minute = minute;public int getld() return id;public void setld(int id) this.id = id;public String getType() return type;public void setTyp
38、e(String type) this.type = type;public int getNum() return num;public void setNum(int num) this.num = num;public int getHours() return hours;public void setHours(int hours) this.hours = hours;public int getMinute() return minute;public void setMinute(int minute) this.minute = minute;package com.chao
39、.model;public class MyTextView private String tit;private String wr_time;private String cont;private int id;public String getCont() return cont;public void setCont(String cont) this.cont = cont;public int getId() return id;public void setId(int id) this.id = id;public MyTextView(int id,String tit,St
40、ringcont,String wr_time)this.tit=tit;this.wr_time=wr_time;this.id=id;this.cont=cont;public String getTit() return tit;public void setTit(String tit) this.tit = tit;public String getWr_time() return wr_time;public void setWr_time(String wr_time) this.wr_time = wr_time;package com.chao.note;import and
41、roid.os.Bundle;import android.app.Activity;import android.view.Menu;import android.widget.TextView;public class AboutUsActivity extends Activity private TextView tv2,tv3;Override protected void onCreate(Bundle savedlnstanceState) super.onCreate(savedlnstanceState); setContentView(R.layout.activity_a
42、bout_us);tv2=( TextView) findViewByld(R.id.about_text);tv3=( TextView) findViewByld(R.id.my_text);tv2.setText("测试软件的过程中”);tv3.setText("如有问题或建议请联系我”);Overridepublic boolean onCreateOptionsMenu(Menu menu) / Inflate the menu; this adds items to the action bar if it is present.getMenulnflater(
43、).inflate(R.menu.about_us, menu);return true;package com.chao.note;import java.util.Calendar;import com.chao.service.MyService;import com.chao.sqlitehelper.MyAlarmHelper;import android.os.Bundle;import android.app.Activity;import android.app.AlarmManager;import android.app.AlertDialog;import android
44、.app.Pendinglntent;import android.app.TimePickerDialog;import android.content.Context;import android.content.lntent;import android.content.SharedPreferences;import android.database.sqlite.SQLiteDatabase;import android.util.Log;import android.view.Menu;import android.view.View;import android.view.Vie
45、w.OnClickListener;import android.widget.Button;import android.widget.CheckBox;import android.widget.CompoundButton;import android.widget.lmageButton;import android.widget.RadioButton;import android.widget.RadioGroup;import android.widget.RadioGroup.OnCheckedChangeListener;import android.widget.TextV
46、iew;import android.widget.TimePicker;import android.widget.Toast;public class AlarmActivity extends Activity implements OnClickListener private ImageButton imgbut;private RadioGroup rg;private Button but_ok, but_exit;private Calendar c;private TextView tv;private AlarmManager alarmManager;private Pe
47、ndingIntent pdintent;/ private CheckBox check_box;private Intent myintent;private int isnew, ischeck;private Intent intent;private long longtime;private int num;private int hours, minutes, id;private String type;private RadioButton radio_one, radio_two;private int my_check = 1;private SQLiteDatabase
48、 db;private SharedPreferences prefs;Overrideprotected void onCreate(Bundle savedInstanceState) super.onCreate(savedlnstanceState);setContentView(R .l ayout.activity_alarm);init();void init() ischeck = 0;/ check_box = (CheckBox) findViewByld(R.id.check_box); radio_one = (RadioButton) findViewByld(R.i
49、d.radio_one); radio_two = (RadioButton) findViewByld(R.id.radio_two); tv =仃 extView) findViewById(R.id.my_text);prefs = thisContext.MODE_PRIVATE);.getSharedPreferences("my_time_count",num = prefs.getInt("my_count", -1);if (num = -1) SharedPreferences.Editor edit = prefs.edit();ed
50、it.putlnt("my_count", 0);mit();num = 0; hours = 0;minutes = 0;c = Calendar.getlnstance();myintent = getIntent();isnew = myintent.getlntExtra("MY_ALARM_TYPE", 2);/ num=Calendar.getlnstance().getTimelnMillis();if (isnew = 1) / 2是新的,1是旧的hours = myintent.getIntExtra("hours"
51、, 0);minutes = myintent.getIntExtra("minute", 0);c.set(Calendar.HOUR_OF_DAY, hours);c.set(Calendar.MINUTE, minutes);num = myintent.getIntExtra("num", 0);type = myintent.getStringExtra("type");id = myintent.getIntExtra("id", 0);tv.setText(”你选定的时间是"+ hours
52、+ "时"+ minutes +分"+ id);if (type.equals("one") radio_one.setChecked(true); my_check = 1; else if (type.equals("every") radio_two.setChecked(true); my_check = 2;imgbut = (ImageButton)findViewByld(R.id.image_but_checktime);rg = (RadioGroup) findViewByld(R.id.radioGro
53、up_one); but_ok = (Button) findViewByld(R.id.my_exit); but_exit = (Button) findViewByld(R.id.button_ok);Log.e("我设置的 num", num + "");db = new MyAlarmHelper(this).getWritableDatabase();rg.setOnCheckedChangeListener(new OnCheckedChangeListener()Overridepublic void onCheckedChanged(R
54、adioGroup argO, int arg1)/ TODO Auto-generated method stub switch (arg1) case R.id.radio_one: my_check = 1;break;case R.id.radio_two: my_check = 2;break;);imgbut.setOnClickListener(this); /设置我but_ok.setOnClickListener(this);but_exit.setOnClickListener(this);/* check_box .setOnCheckedChangeListener(n
55、ew* CompoundButton.OnCheckedChangeListener() boolean=1; boolean=1; is present.is present.* Override public void onCheckedChanged(CompoundButton argO,* argl) / TODOAuto-generated method stub if (argl) ischeck* else ischeck = 0; );*/Overridepublic boolean onCreateOptionsMenu(Menu menu) / Inflate the m
56、enu; this adds items to the action bar if itgetMenulnflater().inflate(R.menu.alarm, menu);return true;Override对图标进行监听public void onClick(View argO) /switch (argO.getld() case R.id.image_but_checktime: timeDialog(); /显示对话框break;case R.id.my_exit: exitAlarm();AlarmActivity.this.finish();Toast.makeText(AlarmActivity.this,"设置的闹钟已取消",Toast.LENGTH_LONG).show();break;case R.id.button_ok: setAlarm();AlarmActivity.this.finish();Toast.makeText(AlarmActivity.this,"闹钟设置成功!",Toast.LENGTH_LONG).show();break;private void setAlarm() /设置我选中的闹钟alarmManager = (AlarmMan
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 社团内部加分制度
- 邢台应用技术职业学院《数据挖掘竞赛训练》2024-2025学年第二学期期末试卷
- 重庆中医药学院《城乡韧性理论与规划》2024-2025学年第二学期期末试卷
- 机关内部规范管理制度
- 机关干部内部沟通制度
- 机构内部治理管理制度
- 杭高投内部管理制度
- 某企业存货内部控制制度
- 西安海棠职业学院《医用微生物学》2024-2025学年第二学期期末试卷
- 检验科室内部管理制度
- 2026春道德与法治二年级下册《身心健康很重要》教学设计
- 石油化工设备维护检修规程设备完好标准SHS
- 日语教师岗前培训
- 实验课课件eviews基本操作与一元线性回归
- 第七章-知觉-实验心理学课件
- 人教版小学一年级语文下册单元测试卷全套
- 第二章空调负荷计算与送风量
- 船坞工程廊道施工方案
- 建筑材料-混凝土介绍ppt
- GB/T 4745-2012纺织品防水性能的检测和评价沾水法
- GB/T 11263-1998热轧H型钢和剖分T型钢
评论
0/150
提交评论