ImageVerifierCode 换一换
格式:DOCX , 页数:33 ,大小:171.84KB ,
资源ID:4893109      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4893109.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于Android的手机备忘录软件设计.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

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

1、基于Android的手机备忘录软件设计课程设计报告(本科)课程: 学号:姓名:班级:教师:时间: 计算机科学与技术系设计名称:基于Android的手机备忘录软件设计设计内容、目的与要求:一目的:利用所学嵌入式Linux应用开发课程所学知识,针对实际问题,基于Android系统平台研发出具有实际应用价值的备忘录。主要内容:(1)基于Android系统平台研发出备忘录;(2)通过安装备忘录,防止手机用户遗忘某个时间的重要工作,进行记录并在特定时间通过声音,文字或振动提醒用户;(3)主要模块有:备忘录数据存储、数据共享访问、列表浏览、数据维护和定时提醒等模块。二基本要求(1)基于Android系统平

2、台研发出备忘录,以防止手机用户遗忘某个时间的重要工作,进行记录并在特定时间通过声音,文字或振动提醒用户。(2)主要设计出备忘录数据存储、数据共享访问、列表浏览、数据维护和定时提醒等模块。已学习掌握Android系统平台和Java编程技术,并要求软件界面简洁专业,功能完善,真正为用户提供重要工作备忘功能。计划与进度安排:5月 3日5月15日: 完成设计思路并作出草稿;5月16日6月1日: 完成程序的输入;6月2日6月10日: 完成对基本功能的修改并运行无误;6月11日6月21日: 增加对开始的源程序的功能;6月22日6月26日: 修改并完成,提交验收;设计过程、步骤(可加页):一功能结构二设计说

3、明1.备忘录数据存储实现为了持久地将用户的备忘录信息保存下来,需要将这些信息存储在SQLite数据库中。备忘录需要保存的信息有:编号(ID)、提醒日起(Datel)、提醒时间(Time1)、提醒内容(Content)、是否启用(NO_OFF)、是否声音提醒(Alarm)、创建日期(Created)等。在操作北往里数据表手机,一些属性在几个类中使用,为此我们将其定义为一个常量类,在该常量类中声明。常量类名称为TaskList,该类有一个内部Tasks继承BaseColumns,在该类中声明URI和列常量等,方便后面使用。2.备忘录ContentProvidershi实现 为了使备忘录数据表具有通

4、用的数据共享访问机制,需要通过ContentProvider来实现。这里我们定义一个TaskListProvide类,该类继承ContentProvider,实现了onCreate、query、getType、insert、deleted、update等方法,来支持数据的增、删、查、改等操作。3.备忘录列表展示 用户可能哟呵常见很多条备忘录信息,而且需要维护这些备忘录信息,例如删除、修改等功能。这里我们通过一个ListView来展示备忘录列表,通过选项菜单提供微幅数据借口。4.备忘录维护 备忘录维护是应该用程序的核心,提供了添加、修改备忘录信息的功能。备忘录信息也通过ListView来展示,L

5、istView的每一项通过自定义View来实现。通过单击ListView的每一项来设置备忘录信息。5.备忘录定时提醒 为了更好的提醒用户在特定时间做某项工作,要设置语音和震动等功能,该功能通过定义Activity发出广播,BroadcastReceiver接收广播,并通过Notification提醒用户。6.程序运行结果与分析(可以加页): 1.列表展示主要功能把备忘录界面展示给用户,用户可以添加和删除备忘录信息,很大程度上方便了用户的操作。运行结果2.备忘录维护用户可以很好的将需要或者不需要的备忘录信息进行增添或者删除运行结果: 3.备忘录定时提醒这个功能可以很有效的提醒用户关闭备忘录,以免

6、造成不必要的资源浪费。运行结果:设计体会与建议: 这个课程设计主要研究了Android平台的架构以及在Android平台上开发备忘录软件,此应用除了具备简单备忘功能外,还具备简单数据处理功能,还有闹钟提醒相对高级点的功能。这个课程设计在Android平台以及在该平台上开发手机备忘录软件上做了大量的工作,但因个人能力有限,还有很多问题需要解决,现对未来可以进行的工作做出以下几点感言: (l)这个课程设计实现的备忘录客户端是基于Android平台进行开发的,但是还未能真正解析Android的精髓,系统的界面设计也不是很完善,对Android平台进一步研究,能够使系统在设计方面更加快捷和完善。 (2

7、)这个课程设计所开发的系统目前还只是在模拟器上进行运行,还有待移植到真机上进行进一步研究。相信随着研究的进一步深入,这些问题会逐步得到解决,相信基于Android平台的备忘录软件会有很好的应用前景。附录:源程序代码1. AlarmActivity.javapackage com.amaker.ch17.app;import android.app.Activity;import android.app.Notification;import android.app.NotificationManager;import android.content.Context;import .Uri;im

8、port android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.TextView;/* * author 冯春礼 * 提醒用户 */public class AlarmActivity extends Activity public static final int ID = 1; Override protected void onCreate(Bundle savedInsta

9、nceState) super.onCreate(savedInstanceState); setContentView(R.layout.alarm); / 获得Button、TextView实例 Button btn = (Button) findViewById(R.id.cancelButton01); TextView tv = (TextView)findViewById(R.id.msgTextView01); / 获得NotificationManager实例 String service = Context.NOTIFICATION_SERVICE; final Notifi

10、cationManager nm = (NotificationManager)getSystemService(service); / 实例化Notification Notification n = new Notification(); / 设置显示提示信息,该信息也会在状态栏显示 String msg = getIntent().getStringExtra(msg); / 显示时间 n.tickerText = msg; tv.setText(msg); / 设置声音提示 n.sound = Uri.parse(file:/sdcard/fallbackring.ogg); / 发出

11、通知 nm.notify(ID, n); / 取消通知 btn.setOnClickListener(new OnClickListener() Override public void onClick(View v) nm.cancel(ID); finish(); ); 2. TaskDetailActivity.javapackage com.amaker.ch17.app;import java.util.Calendar;import android.app.AlarmManager;import android.app.AlertDialog;import android.app.

12、DatePickerDialog;import android.app.Dialog;import android.app.ListActivity;import android.app.PendingIntent;import android.app.TimePickerDialog;import android.content.ContentUris;import android.content.ContentValues;import android.content.DialogInterface;import android.content.Intent;import .Uri;imp

13、ort android.os.Bundle;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.AdapterView;import android.widget.BaseAdapter;import android.widget.CheckedTextView;import android.widget.DatePicker;import android.widget.EditText;import android.wid

14、get.ListView;import android.widget.TextView;import android.widget.TimePicker;import android.widget.AdapterView.OnItemClickListener;import com.amaker.ch17.app.TaskList.Tasks;/* * * author 冯春礼 * 备忘录详细信息类,该信息 */public class TaskDetailActivity extends ListActivity / 备忘录信息列表 private ListView listView = n

15、ull; / 提醒日期 private int mYear; private int mMonth; private int mDay; / 提醒时间 private int mHour; private int mMinute; / 日期显示TextView private TextView dateName, dateDesc; / 时间显示TextView private TextView timeName, timeDesc; / 提醒内容TextView private TextView contentName, contentDesc; / 是否开启提醒 private int o

16、n_off = 0; / 是否声音警告 private int alarm = 0; / 显示日期、时间对话框常量 static final int DATE_DIALOG_ID = 0; static final int TIME_DIALOG_ID = 1; / 保存内容、日期、时间字符串 private String content, date1, time1; / 备忘录ID private int id1; / 多选框 private CheckedTextView ctv1, ctv2; / 访问布局实例 private LayoutInflater li; / 初始化方法 pri

17、vate void init(Intent intent) Bundle b = 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.

18、split(/); mYear = Integer.parseInt(strs0); mMonth = Integer.parseInt(strs1); mDay = Integer.parseInt(strs2); if (time1 != null & time1.length() 0) String strs = time1.split(:); mHour = Integer.parseInt(strs0); mMinute = Integer.parseInt(strs1); Override public void onCreate(Bundle savedInstanceState

19、) super.onCreate(savedInstanceState); / 获得ListView listView = getListView(); / 实例化LayoutInflater li = getLayoutInflater(); / 设置ListView Adapter listView.setAdapter(new ViewAdapter(); / 可多选 listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); / 获得Calendar实例 final Calendar c = Calendar.getInstance()

20、; / 获得当前日期、时间 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(new OnItemClickListener() Override public void onItemClick(AdapterView av

21、, View v, int position, long id) switch (position) / 设置是否开启提醒 case 0: ctv1 = (CheckedTextView) v; if (ctv1.isChecked() on_off = 0; else on_off = 1; break; / 设置提醒日期 case 1: showDialog(DATE_DIALOG_ID); break; / 设置提醒时间 case 2: showDialog(TIME_DIALOG_ID); break; / 设置提醒内容 case 3: showDialog1(请输入内容:); bre

22、ak; / 设置是否开启语音提醒 case 4: ctv2 = (CheckedTextView) v; if (ctv2.isChecked() alarm = 0; setAlarm(false); else alarm = 1; setAlarm(true); break; default: break; ); Override protected void onResume() super.onResume(); / 初始化列表 init(getIntent(); / ListView Adatper,该类实现了列表的每一项通过自定义视图实现 class ViewAdapter ext

23、ends BaseAdapter / 列表显示内容 String strs = 是否开启, 日期, 时间, 内容, 开启闹钟 ; / 获得列表列数 Override public int getCount() return strs.length; / 返回列表项 Override public Object getItem(int position) return position; / 返回列表ID Override public long getItemId(int position) return position; / 获得当前列表项视图 Override public View g

24、etView(int position, View convertView, ViewGroup parent) View v = li.inflate(R.layout.item_row, null); switch (position) / 是否开启该条备忘录 case 0: ctv1 = (CheckedTextView) li .inflate( android.R.layout.simple_list_item_multiple_choice, null); ctv1.setText(strsposition); if (on_off = 0) ctv1.setChecked(fal

25、se); else ctv1.setChecked(true); return ctv1; / 提醒日期 case 1: dateName = (TextView) v.findViewById(R.id.name); dateDesc = (TextView) v.findViewById(R.id.desc); dateName.setText(strsposition); dateDesc.setText(mYear + / + mMonth + / + mDay); return v; / 提醒时间 case 2: timeName = (TextView) v.findViewByI

26、d(R.id.name); timeDesc = (TextView) v.findViewById(R.id.desc); timeName.setText(strsposition); timeDesc.setText(mHour + : + mMinute); return v; / 提醒内容 case 3: contentName = (TextView) v.findViewById(R.id.name); contentDesc = (TextView) v.findViewById(R.id.desc); contentName.setText(strsposition); co

27、ntentDesc.setText(content); return v; / 是否声音提示 case 4: ctv2 = (CheckedTextView) li .inflate( android.R.layout.simple_list_item_multiple_choice, null); ctv2.setText(strsposition); if (alarm = 0) ctv2.setChecked(false); else ctv2.setChecked(true); return ctv2; default: break; return null; / 显示对话框 Over

28、ride protected Dialog onCreateDialog(int id) switch (id) / 显示日期对话框 case DATE_DIALOG_ID: return new DatePickerDialog(this, mDateSetListener, mYear, mMonth, mDay); / 显示时间对话框 case TIME_DIALOG_ID: return new TimePickerDialog(this, mTimeSetListener, mHour, mMinute, false); return null; / 设置通知提示 private void setAlarm(boolean fl

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

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