基于Android的手机备忘录软件设计.docx

上传人:b****1 文档编号:11128556 上传时间:2023-05-29 格式:DOCX 页数:35 大小:170.90KB
下载 相关 举报
基于Android的手机备忘录软件设计.docx_第1页
第1页 / 共35页
基于Android的手机备忘录软件设计.docx_第2页
第2页 / 共35页
基于Android的手机备忘录软件设计.docx_第3页
第3页 / 共35页
基于Android的手机备忘录软件设计.docx_第4页
第4页 / 共35页
基于Android的手机备忘录软件设计.docx_第5页
第5页 / 共35页
基于Android的手机备忘录软件设计.docx_第6页
第6页 / 共35页
基于Android的手机备忘录软件设计.docx_第7页
第7页 / 共35页
基于Android的手机备忘录软件设计.docx_第8页
第8页 / 共35页
基于Android的手机备忘录软件设计.docx_第9页
第9页 / 共35页
基于Android的手机备忘录软件设计.docx_第10页
第10页 / 共35页
基于Android的手机备忘录软件设计.docx_第11页
第11页 / 共35页
基于Android的手机备忘录软件设计.docx_第12页
第12页 / 共35页
基于Android的手机备忘录软件设计.docx_第13页
第13页 / 共35页
基于Android的手机备忘录软件设计.docx_第14页
第14页 / 共35页
基于Android的手机备忘录软件设计.docx_第15页
第15页 / 共35页
基于Android的手机备忘录软件设计.docx_第16页
第16页 / 共35页
基于Android的手机备忘录软件设计.docx_第17页
第17页 / 共35页
基于Android的手机备忘录软件设计.docx_第18页
第18页 / 共35页
基于Android的手机备忘录软件设计.docx_第19页
第19页 / 共35页
基于Android的手机备忘录软件设计.docx_第20页
第20页 / 共35页
亲,该文档总共35页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

基于Android的手机备忘录软件设计.docx

《基于Android的手机备忘录软件设计.docx》由会员分享,可在线阅读,更多相关《基于Android的手机备忘录软件设计.docx(35页珍藏版)》请在冰点文库上搜索。

基于Android的手机备忘录软件设计.docx

基于Android的手机备忘录软件设计

基于Android的手机备忘录软件设计

课程设计报告

(本科)

课程:

嵌入式系统

学号:

姓名:

班级:

教师:

时间:

2013年5月3日至6月20日

计算机科学与技术系

设计名称:

基于Android的手机备忘录软件设计

设计内容、目的与要求:

一.目的:

 

利用所学《嵌入式Linux应用开发》课程所学知识,针对实际问题,基于Android系统平台研发出具有实际应用价值的备忘录。

 

主要内容:

 

(1)基于Android系统平台研发出备忘录; 

(2)通过安装备忘录,防止手机用户遗忘某个时间的重要工作,进行记录并在特定时间通过声音,文字或振动提醒用户; 

(3)主要模块有:

备忘录数据存储、数据共享访问、列表浏览、数据维护和定时提醒等模块。

  

二.基本要求 

(1)基于Android系统平台研发出备忘录,以防止手机用户遗忘某个时间的重要工作,进行记录并在特定时间通过声音,文字或振动提醒用户。

 

(2)主要设计出备忘录数据存储、数据共享访问、列表浏览、数据维护和定时提醒等模块。

已学习掌握Android系统平台和Java编程技术,并要求软件界面简洁专业,功能完善,真正为用户提供重要工作备忘功能。

计划与进度安排:

5月3日~5月15日:

完成设计思路并作出草稿;

5月16日~6月1日:

完成程序的输入;

6月2日~6月10日:

完成对基本功能的修改并运行无误;

6月11日~6月21日:

增加对开始的源程序的功能;

6月22日~6月26日:

修改并完成,提交验收;

 

设计过程、步骤(可加页):

一.功能结构

二.设计说明

1.备忘录数据存储实现

为了持久地将用户的备忘录信息保存下来,需要将这些信息存储在SQLite数据库中。

备忘录需要保存的信息有:

编号(ID)、提醒日起(Datel)、提醒时间(Time1)、提醒内容(Content)、是否启用(NO_OFF)、是否声音提醒(Alarm)、创建日期(Created)等。

在操作北往里数据表手机,一些属性在几个类中使用,为此我们将其定义为一个常量类,在该常量类中声明。

常量类名称为TaskList,该类有一个内部Tasks继承BaseColumns,在该类中声明URI和列常量等,方便后面使用。

2.备忘录ContentProvidershi实现

为了使备忘录数据表具有通用的数据共享访问机制,需要通过ContentProvider来实现。

这里我们定义一个TaskListProvide类,该类继承ContentProvider,实现了onCreate、query、getType、insert、deleted、update等方法,来支持数据的增、删、查、改等操作。

3.备忘录列表展示

用户可能哟呵常见很多条备忘录信息,而且需要维护这些备忘录信息,例如删除、修改等功能。

这里我们通过一个ListView来展示备忘录列表,通过选项菜单提供微幅数据借口。

4.备忘录维护

备忘录维护是应该用程序的核心,提供了添加、修改备忘录信息的功能。

备忘录信息也通过ListView来展示,ListView的每一项通过自定义View来实现。

通过单击ListView的每一项来设置备忘录信息。

5.备忘录定时提醒

为了更好的提醒用户在特定时间做某项工作,要设置语音和震动等功能,该功能通过定义Activity发出广播,BroadcastReceiver接收广播,并通过Notification提醒用户。

6.程序运行

结果与分析(可以加页):

1.列表展示

主要功能把备忘录界面展示给用户,用户可以添加和删除备忘录信息,很大程度上方便了用户的操作。

运行结果

2.备忘录维护

用户可以很好的将需要或者不需要的备忘录信息进行增添或者删除

运行结果:

3.备忘录定时提醒

这个功能可以很有效的提醒用户关闭备忘录,以免造成不必要的资源浪费。

运行结果:

设计体会与建议:

这个课程设计主要研究了Android平台的架构以及在Android平台上开发备忘录软件, 此应用除了具备简单备忘功能外,还具备简单数据处理功能,还有闹钟提醒相对高级点的功能。

这个课程设计在Android平台以及在该平台上开发手机备忘录软件上做了大量的工作,但因个人能力有限,还有很多问题需要解决,现对未来可以进行的工作做出以下几点感言:

(l)这个课程设计实现的备忘录客户端是基于Android平台进行开发的,但是还未能真正解析Android的精髓,系统的界面设计也不是很完善,对Android平台进一步研究,能够使系统在设计方面更加快捷和完善。

(2)这个课程设计所开发的系统目前还只是在模拟器上进行运行,还有待移植到真机上进行进一步研究。

相信随着研究的进一步深入,这些问题会逐步得到解决,相信基于Android平台的备忘录软件会有很好的应用前景。

 

附录:

源程序代码

1.AlarmActivity.java

 

xt;

 

/**

*@author冯春礼

*提醒用户

*/

publicclassAlarmActivityextendsActivity{

publicstaticfinalintID=1;

@Override

protectedvoidonCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);

//获得Button、TextView实例

01);

//获得NotificationManager实例

Stringservice=Context.NOTIFICATION_SERVICE;

finalNotificationManagernm=(NotificationManager)getSystemService(service);

//实例化Notification

Notificationn=newNotification();

//设置显示提示信息,该信息也会在状态栏显示

Stringmsg=getIntent().getStringExtra("msg");

//显示时间

n.tickerText=msg;

tv.setText(msg);

//设置声音提示

n.sound=Uri.parse("file:

///sdcard/fallbackring.ogg");

//发出通知

nm.notify(ID,n);

//取消通知

btn.setOnClickListener(newOnClickListener(){

@Override

publicvoidonClick(Viewv){

nm.cancel(ID);

finish();

}

});

}

}

2.TaskDetailActivity.java

 

importandr

 

/**

*

*@author冯春礼

*备忘录详细信息类,该信息

*/

publicclassTaskDetailActivityextendsListActivity{

//备忘录信息列表

privateListViewlistView=null;

//提醒日期

privateintmYear;

privateintmMonth;

privateintmDay;

//提醒时间

privateintmHour;

privateintmMinute;

//日期显示TextView

privateTextViewdateName,dateDesc;

//时间显示TextView

privateTextViewtimeName,timeDesc;

//提醒内容TextView

privateTextViewcontentName,contentDesc;

//是否开启提醒

privateinton_off=0;

//是否声音警告

privateintalarm=0;

//显示日期、时间对话框常量

staticfinalintDATE_DIALOG_ID=0;

staticfinalintTIME_DIALOG_ID=1;

//保存内容、日期、时间字符串

privateStringcontent,date1,time1;

//备忘录ID

privateintid1;

//多选框

privateCheckedTextViewctv1,ctv2;

//访问布局实例

privateLayoutInflaterli;

//初始化方法

privatevoidinit(Intentintent){

Bundleb=intent.getBundleExtra("b");

if(b!

=null){

id1=b.getInt("id");

content=b.getString("content");

date1=b.getString("date1");

time1=b.getString("time1");

on_off=b.getInt("on_off");

alarm=b.getInt("alarm");

if(date1!

=null&&date1.length()>0){

String[]strs=date1.split("/");

mYear=Integer.parseInt(strs[0]);

mMonth=Integer.parseInt(strs[1]);

mDay=Integer.parseInt(strs[2]);

}

if(time1!

=null&&time1.length()>0){

String[]strs=time1.split(":

");

mHour=Integer.parseInt(strs[0]);

mMinute=Integer.parseInt(strs[1]);

}

}

}

@Override

publicvoidonCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);

//获得ListView

listView=getListView();

//实例化LayoutInflater

li=getLayoutInflater();

//设置ListViewAdapter

listView.setAdapter(newViewAdapter());

//可多选

listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);

//获得Calendar实例

finalCalendarc=Calendar.getInstance();

//获得当前日期、时间

mYear=c.get(Calendar.YEAR);

mMonth=c.get(Calendar.MONTH);

mDay=c.get(Calendar.DAY_OF_MONTH);

mHour=c.get(Calendar.HOUR_OF_DAY);

mMinute=c.get(Calendar.MINUTE);

//响应列表单击事件

listView.setOnItemClickListener(newOnItemClickListener(){

@Override

publicvoidonItemClick(AdapterView

>av,Viewv,intposition,

longid){

switch(position){

//设置是否开启提醒

case0:

ctv1=(CheckedTextView)v;

if(ctv1.isChecked()){

on_off=0;

}else{

on_off=1;

}

break;

//设置提醒日期

case1:

showDialog(DATE_DIALOG_ID);

break;

//设置提醒时间

case2:

showDialog(TIME_DIALOG_ID);

break;

//设置提醒内容

case3:

showDialog1("请输入内容:

");

break;

//设置是否开启语音提醒

case4:

ctv2=(CheckedTextView)v;

if(ctv2.isChecked()){

alarm=0;

setAlarm(false);

}else{

alarm=1;

setAlarm(true);

}

break;

default:

break;

}

}

});

}

@Override

protectedvoidonResume(){

super.onResume();

//初始化列表

init(getIntent());

}

//ListViewAdatper,该类实现了列表的每一项通过自定义视图实现

classViewAdapterextendsBaseAdapter{

//列表显示内容

String[]strs={"是否开启","日期","时间","内容","开启闹钟"};

//获得列表列数

@Override

publicintgetCount(){

returnstrs.length;

}

//返回列表项

@Override

publicObjectgetItem(intposition){

returnposition;

}

//返回列表ID

@Override

publiclonggetItemId(intposition){

returnposition;

}

//获得当前列表项视图

@Override

publicViewgetView(intposition,ViewconvertView,ViewGroupparent){

switch(position){

//是否开启该条备忘录

case0:

ctv1=(CheckedTextView)li

.inflate(

null);

ctv1.setText(strs[position]);

if(on_off==0){

ctv1.setChecked(false);

}else{

ctv1.setChecked(true);

}

returnctv1;

//提醒日期

case1:

 

dateName.setText(strs[position]);

dateDesc.setText(mYear+"/"+mMonth+"/"+mDay);

returnv;

//提醒时间

case2:

timeNa

timeName.setText(strs[position]);

timeDesc.setText(mHour+":

"+mMinute);

returnv;

//提醒内容

case3:

contentName=(TextView)v.findViewBy

contentName.setText(strs[position]);

contentDesc.setText(content);

returnv;

//是否声音提示

case4:

ctv2=(CheckedTextView)li

.inflate(

.simple_list_item_multiple_choice,

null);

ctv2.setText(strs[position]);

if(alarm==0){

ctv2.setChecked(false);

}else{

ctv2.setChecked(true);

}

returnctv2;

default:

break;

}

returnnull;

}

}

//显示对话框

@Override

protectedDialogonCreateDialog(intid){

switch(id){

//显示日期对话框

caseDATE_DIALOG_ID:

returnnewDatePickerDialog(this,mDateSetListener,mYear,mMonth,

mDay);

//显示时间对话框

caseTIME_DIALOG_ID:

returnnewTimePickerDialog(this,mTimeSetListener,mHour,mMinute,

false);

}

returnnull;

}

//设置通知提示

privatevoidsetAlarm(booleanflag){

//获得AlarmManager实例

finalAlarmManageram=(AlarmManager)getSystemService(ALARM_SERVICE);

//实例化Intent

Intentintent=newIntent();

//设置Intentaction属性

intent.setAction(BC_ACTION);

intent.putExtra("msg",content);

//实例化PendingIntent

finalPendingIntentpi=PendingIntent.getBroadcast(

getApplicationContext(),0,intent,0);

//获得系统时间

finallongtime1=System.currentTimeMillis();

Calendarc=Calendar.getInstance();

c.set(mYear,mMonth,mDay,mHour,mMinute);

longtime2=c.getTimeInMillis();

if(flag&&(time2-time1)>0&&on_off==1){

am.set(AlarmManager.RTC_WAKEUP,time2,pi);

}else{

am.cancel(pi);

}

}

/*

*设置提示日期对话框

*/

privatevoidshowDialog1(Stringmsg){

finalEditTextcontentET=(EditText)v.findViewById(R.id.content);

contentET.setText(content);

newAlertDialog.Builder(this).setView(v).setMessage(msg).setCancelable(

false).setPositiveButton("确定",

newDialogInterface.OnClickListener(){

publicvoidonClick(DialogInterfacedialog,intid){

content=contentET.getText().toString();

contentDesc.setText(content);

}

}).show();

}

//时间选择对话框

privateTimePickerDialog.OnTimeSetListenermTimeSetListener=

newTimePickerDialog.OnTimeSetListener(){

publicvoidonTimeSet(TimePickerview,inthourOfDay,intminute){

mHour=hourOfDay;

mMinute=minute;

timeDesc.setText(mHour+":

"+mMinute);

}

};

//日期选择对话框

privateDatePickerDialog.OnDateSetListenermDateSetListener=

newDatePickerDialog.OnDateSetListener(){

publicvoidonDateSet(DatePickerview,intyear,intmonthOfYear,

intdayOfMonth){

mYear=year;

mMonth=monthOfYear;

mDay=dayOfMonth;

dateDesc.setText(mYear+"/"+mMonth+"/"+mDa

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2