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

上传人:b****8 文档编号:9372617 上传时间:2023-02-04 格式:DOCX 页数:36 大小:171.62KB
下载 相关 举报
基于Android的手机备忘录软件设计.docx_第1页
第1页 / 共36页
基于Android的手机备忘录软件设计.docx_第2页
第2页 / 共36页
基于Android的手机备忘录软件设计.docx_第3页
第3页 / 共36页
基于Android的手机备忘录软件设计.docx_第4页
第4页 / 共36页
基于Android的手机备忘录软件设计.docx_第5页
第5页 / 共36页
点击查看更多>>
下载资源
资源描述

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

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

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

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

课程设计报告

〔本科〕

课程:

嵌入式系统

__

__

__

教师:

时间:

20XX5月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

packagecom.amaker.ch17.app;

importandroid.app.Activity;

importandroid.app.Notification;

importandroid.app.NotificationManager;

importandroid.content.Context;

import.Uri;

importandroid.os.Bundle;

importandroid.view.View;

importandroid.view.View.OnClickListener;

importandroid.widget.Button;

importandroid.widget.TextView;

/**

*author冯春礼

*提醒用户

*/

publicclassAlarmActivityextendsActivity{

publicstaticfinalintID=1;

Override

protectedvoidonCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);

setContentView(R.layout.alarm);

//获得Button、TextView实例

Buttonbtn=(Button)findViewById(R.id.cancelButton01);

TextViewtv=(TextView)findViewById(R.id.msgTextView01);

//获得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

packagecom.amaker.ch17.app;

importjava.util.Calendar;

importandroid.app.AlarmManager;

importandroid.app.AlertDialog;

importandroid.app.DatePickerDialog;

importandroid.app.Dialog;

importandroid.app.ListActivity;

importandroid.app.PendingIntent;

importandroid.app.TimePickerDialog;

importandroid.content.ContentUris;

importandroid.content.ContentValues;

importandroid.content.DialogInterface;

importandroid.content.Intent;

import.Uri;

importandroid.os.Bundle;

importandroid.view.LayoutInflater;

importandroid.view.View;

importandroid.view.ViewGroup;

importandroid.widget.AdapterView;

importandroid.widget.BaseAdapter;

importandroid.widget.CheckedTextView;

importandroid.widget.DatePicker;

importandroid.widget.EditText;

importandroid.widget.ListView;

importandroid.widget.TextView;

importandroid.widget.TimePicker;

importandroid.widget.AdapterView.OnItemClickListener;

importcom.amaker.ch17.app.TaskList.Tasks;

/**

*

*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){

Viewv=li.inflate(R.layout.item_row,null);

switch(position){

//是否开启该条备忘录

case0:

ctv1=(CheckedTextView)li

.inflate(

android.R.layout.simple_list_item_multiple_choice,

null);

ctv1.setText(strs[position]);

if(on_off==0){

ctv1.setChecked(false);

}else{

ctv1.setChecked(true);

}

returnctv1;

//提醒日期

case1:

dateName=(TextView)v.findViewById(R.id.name);

dateDesc=(TextView)v.findViewById(R.id.desc);

dateName.setText(strs[position]);

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

returnv;

//提醒时间

case2:

timeName=(TextView)v.findViewById(R.id.name);

timeDesc=(TextView)v.findViewById(R.id.desc);

timeName.setText(strs[position]);

timeDesc.setText(mHour+":

"+mMinute);

returnv;

//提醒内容

case3:

contentName=(TextView)v.findViewById(R.id.name);

contentDesc=(TextView)v.findViewById(R.id.desc);

contentName.setText(strs[position]);

contentDesc.setText(content);

returnv;

//是否声音提示

case4:

ctv2=(CheckedTextView)li

.inflate(

android.R.layout.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){

finalStringBC_ACTION="com.ama

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

当前位置:首页 > 考试认证 > 其它考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1