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

1、课程设计报告(本科)课程:嵌入式系统学号:姓名:班级:教师:时间:2013年5月3日至6月20日计算机科学与技术系设计名称:基于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. 备忘录Content。

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

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

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

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

8、ntent.Context;import android.net.Uri;import 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;Overrideprotecte。

9、d void onCreate(Bundle savedInstanceState) 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.NOTIFIC。

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

11、ckring.ogg);/ 发出通知nm.notify(ID, n);/ 取消通知btn.setOnClickListener(new OnClickListener() Overridepublic 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 and。

12、roid.app.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。

13、 android.net.Uri;import 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.EditTex。

14、t;import android.widget.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 ListVi。

15、ew listView = null;/ 提醒日期private int mYear;private int mMonth;private int mDay;/ 提醒时间private int mHour;private int mMinute;/ 日期显示TextViewprivate TextView dateName, dateDesc;/ 时间显示TextViewprivate TextView timeName, timeDesc;/ 提醒内容TextViewprivate 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;/ 备忘录IDprivate int id1;/ 多选框private CheckedTextView ctv1, ctv2;/ 访问布局实例private LayoutInflater li;/ 初始化方法private void init(。

17、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.split(/);mYear = Integ。

18、er.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);Overridepublic void onCreate(Bundle savedInstanceState) super.onCreate(savedInstance。

19、State);/ 获得ListViewlistView = getListView();/ 实例化LayoutInflaterli = getLayoutInflater();/ 设置ListView Adapter listView.setAdapter(new ViewAdapter();/ 可多选listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);/ 获得Calendar实例final Calendar c = Calendar.getInstance();/ 获得当前日期、时间mYear = c.get(Calendar.YEAR。

20、);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() Overridepublic void onItemClick(AdapterView av, View v, int position,long id) switch (position。

21、) / 设置是否开启提醒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(请输入内容:);break;/ 设置是否开启语音提醒case 4:ctv2 = (CheckedTextView) v;if (ctv2.isCheck。

22、ed() alarm = 0;setAlarm(false); else alarm = 1;setAlarm(true);break;default:break;);Overrideprotected void onResume() super.onResume();/ 初始化列表init(getIntent();/ ListView Adatper,该类实现了列表的每一项通过自定义视图实现class ViewAdapter extends BaseAdapter / 列表显示内容String strs = 是否开启, 日期, 时间, 内容, 开启闹钟 ;/ 获得列表列数Overridepu。

23、blic int getCount() return strs.length;/ 返回列表项Overridepublic Object getItem(int position) return position;/ 返回列表IDOverridepublic long getItemId(int position) return position;/ 获得当前列表项视图Overridepublic View getView(int position, View convertView, ViewGroup parent) View v = li.inflate(R.layout.item_row。

24、, 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(false); else ctv1.setChecked(true);return ctv1;/ 提醒日期case 1:dateName = (TextView) v.findViewById(R.id.nam。

25、e);dateDesc = (TextView) v.findViewById(R.id.desc);dateName.setText(strsposition);dateDesc.setText(mYear + / + mMonth + / + mDay);return v;/ 提醒时间case 2:timeName = (TextView) v.findViewById(R.id.name);timeDesc = (TextView) v.findViewById(R.id.desc);timeName.setText(strsposition);timeDesc.setText(mHou。

26、r + : + mMinute);return v;/ 提醒内容case 3:contentName = (TextView) v.findViewById(R.id.name);contentDesc = (TextView) v.findViewById(R.id.desc);contentName.setText(strsposition);contentDesc.setText(content);return v;/ 是否声音提示case 4:ctv2 = (CheckedTextView) li.inflate(android.R.layout.simple_list_item_mu。

27、ltiple_choice,null);ctv2.setText(strsposition);if (alarm = 0) ctv2.setChecked(false); else ctv2.setChecked(true);return ctv2;default:break;return null;/ 显示对话框Overrideprotected Dialog onCreateDialog(int id) switch (id) / 显示日期对话框case DATE_DIALOG_ID:return new DatePickerDialog(this, mDateSetListener, m。

28、Year, mMonth,mDay);/ 显示时间对话框case TIME_DIALOG_ID:return new TimePickerDialog(this, mTimeSetListener, mHour, mMinute,false);return null;/ 设置通知提示private void setAlarm(boolean flag) final String BC_ACTION = com.amaker.ch17.TaskReceiver;/ 获得AlarmManager实例final AlarmManager am = (AlarmManager) getSystemSe。

29、rvice(ALARM_SERVICE);/ 实例化IntentIntent intent = new Intent();/ 设置Intent action属性intent.setAction(BC_ACTION);intent.putExtra(msg, content);/ 实例化PendingIntentfinal PendingIntent pi = PendingIntent.getBroadcast(getApplicationContext(), 0, intent, 0);/ 获得系统时间final long time1 = System.currentTimeMillis()。

30、;Calendar c = Calendar.getInstance();c.set(mYear, mMonth, mDay, mHour, mMinute);long time2 = c.getTimeInMillis();if (flag&(time2-time1)0&on_off=1)am.set(AlarmManager.RTC_WAKEUP, time2, pi);elseam.cancel(pi);/* 设置提示日期对话框*/private void showDialog1(String msg) View v = li.inflate(R.layout.item_content,。

31、 null);final EditText contentET = (EditText) v.findViewById(R.id.content);contentET.setText(content);new AlertDialog.Builder(this).setView(v).setMessage(msg).setCancelable(false).setPositiveButton(确定,new DialogInterface.OnClickListener() public void onClick(DialogInterface dialog, int id) content = 。

32、contentET.getText().toString();contentDesc.setText(content);).show();/ 时间选择对话框private TimePickerDialog.OnTimeSetListener mTimeSetListener = new TimePickerDialog.OnTimeSetListener() public void onTimeSet(TimePicker view, int hourOfDay, int minute) mHour = hourOfDay;mMinute = minute;timeDesc.setText(m。

33、Hour + : + mMinute);/ 日期选择对话框private DatePickerDialog.OnDateSetListener mDateSetListener = new DatePickerDialog.OnDateSetListener() public void onDateSet(DatePicker view, int year, int monthOfYear,int dayOfMonth) mYear = year;mMonth = monthOfYear;mDay = dayOfMonth;dateDesc.setText(mYear + / + mMonth。

34、 + / + mDay);/ 保存或修改备忘录信息protected void onPause() super.onPause();saveOrUpdate();/ 保存或修改备忘录信息private void saveOrUpdate() ContentValues values = new ContentValues();values.clear();values.put(Tasks.CONTENT, contentDesc.getText().toString();values.put(Tasks.DATE1, dateDesc.getText().toString();values.p。

35、ut(Tasks.TIME1, timeDesc.getText().toString();values.put(Tasks.ON_OFF, ctv1.isChecked() ? 1 : 0);values.put(Tasks.ALARM, ctv2.isChecked() ? 1 : 0);/ 修改if (id1 != 0) Uri uri = ContentUris.withAppendedId(Tasks.CONTENT_URI, id1);getContentResolver().update(uri, values, null, null);/ 保存 else Uri uri = T。

36、askList.Tasks.CONTENT_URI;getContentResolver().insert(uri, values);3. TaskList.javapackage com.amaker.ch17.app;import android.net.Uri;import android.provider.BaseColumns;/* author 冯春礼* 备忘录常量类*/public final class TaskList / 授权常量public static final String AUTHORITY = com.amaker.provider.TaskList;priva。

37、te TaskList() / 内部类public static final class Tasks implements BaseColumns private Tasks() / 访问Uripublic static final Uri CONTENT_URI = Uri.parse(content:/ + AUTHORITY + /taskLists);public static final String CONTENT_TYPE = vnd.android.cursor.dir/vnd.amaker.tasklist;public static final String CONTENT。

38、_ITEM_TYPE = vnd.android.cursor.item/vnd.amaker.tasklist;/ 默认排序常量public static final String DEFAULT_SORT_ORDER = created DESC;/ 表字段常量public static final String CONTENT = content;public static final String CREATED= created;public static final String DATE1 = date1;public static final String TIME1 = ti。

39、me1;public static final String ON_OFF = on_off;public static final String ALARM = alarm;4. TaskListActivity.javapackage com.amaker.ch17.app;import android.app.ListActivity;import android.content.ContentUris;import android.content.Intent;import android.database.Cursor;import android.net.Uri;import an。

40、droid.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.widget.AdapterView;import android.widget.ListView;import android.widget.SimpleCursorAdapter;import android.widget.AdapterView.OnItemClickListener;import com.amaker.ch17.app.TaskList.Tasks;/* * author 冯春礼* 备忘录列表类,提供数据展示*/public class TaskListActivity extends ListActivity / 菜单项常量private static final int NEW = 1;private static final int DEL = 2;/ 查询列数组private static final String PROJECTION = new String Tasks._ID, / 0Tasks.CONTENT, / 1Tasks.CREATED, / 2Tasks.ALARM, /。

基于Android的备忘录软件,基于Android的手机备忘录软件设计相关推荐

  1. wps android 版 参数控制介绍,最强手机办公软件 Android版金山WPS首评测

    [天极网手机频道]从智能手机在市场流行那一刻开始,注定在我们的生活工作将发生重大改变,对于智能手机来说强大的硬件支持与智能平台的兼容行决定在,手机的各项功能已经逐步趋于PC化,而对于日常上班族来说,随 ...

  2. android优化最强软件,七款安卓手机优化软件推荐 为手机提速

    启动项管理器设置 七款安卓手机优化软件推荐 超频工具OverClock Widget 希望提高手机运行速度,只是更改开机启动项是不够的,其实我们还可以通过超频让手机的运行速度飞起来.超频降频工具Ove ...

  3. android 禁用触摸屏,Touch Protector-安卓禁用手机触摸屏软件

    Touch Protecto是一款安卓平台上用来临时禁用禁用手机触摸屏软件,意思就是开启App之后你即便疯狂触摸屏幕也不会产生任何交互,以防止某些特定场景的意外操作触摸屏,从此达到防误触的目的. To ...

  4. 电脑下载软件用什么软件好?安卓手机下载软件用哪个软件好?IDM下载器说:在做的都是弟弟

              大年初五,迎财神,先祝大家新的一年财源滚滚,接下来为大家分享超级经典的IDM下载器,电脑端毫无争议的下载工具,安卓平台idm也是力压群雄,下面就为大家详细分享下: 1:1DM+下载 ...

  5. android脚本之家记事本,99笔记(手机记事本软件) for android 1.8.6 安卓版

    99笔记现在还是非常的不错的一款手机上的记事本软件,可以帮助你随时的记录住你需要的各种各样的事情,同时是集合了文字以及图片,视频一起的! 99笔记安卓版介绍 电脑前.汽车里.被窝中--你永远不知道下一 ...

  6. 111、基于51单片机的电磁感应无线充电系统 手机无线充电器设计(程序+原理图+Proteus仿真+程序流程图+论文参考资料等)

    方案选择 单片机的选择 方案一:AT89C52是美国ATMEL公司生产的低电压,高性能CMOS型8位单片机,器件采用ATMEL公司的高密度.非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通 ...

  7. 360软件管家android,360软件管家

    <360软件管家>,一款手机必备的软件管理平台.你可以通过这款软件来下载各种安全无毒的游戏.软件,还可以卸载掉各种顽固的插件和软件,让你的手机不再卡顿.快来下载体验一下吧. 软件详情 36 ...

  8. android上的日记软件推荐,手机日记软件哪个好_安卓手机写日记软件哪个好_很好的手机日记本软件...

    核心提示:手机日记的软件有很多,哪些手机日记软件是我们想要的呢,下面多特小编就跟您推荐几款比较合适的软件或者app给您参考 手机日记的软件有很多,哪些手机日记软件是我们想要的呢,下面多特小编就跟您推荐 ...

  9. 手机钢琴软件测试自学,手机钢琴app哪个好_自学钢琴软件哪个好_安卓钢琴软件哪个好...

    核心提示:手机钢琴的软件有很多,哪些手机钢琴软件是我们想要的呢,下面多特小编就跟您推荐几款比较合适的软件或者app给您参考 手机钢琴的软件有很多,哪些手机钢琴软件是我们想要的呢,下面多特小编就跟您推荐 ...

  10. 华为手机备忘录怎么加视频?超多功能的智能备忘录

    有一些苹果手机用户在更换手机的时候,会优先考虑国产的手机,而华为手机就是很多人的选择.但是也一部分网友在使用了一段华为手机之后,发现了一些问题,例如在苹果手机备忘录中是可以添加视频文件的,而华为手机上 ...

最新文章

  1. python中的数据包处理模块scapy调研笔记
  2. drep:微生物基因组快速去冗余-文章解读+帮助文档+实战教程
  3. java map 队列_Java:queue队列,map集合
  4. python 为何要学16进制,从十六进制Python中的补
  5. RuntimeError: Bool type is not supported by dlpack
  6. KAFKA 最新版 单机安装、配置、部署(linux环境)
  7. 批量统计多个PPTX文件中幻灯片总数量
  8. PPT幻灯片放映时不显示视频(旁白)
  9. 网页img 居中办法
  10. Linux系统查看CPU个数超线程线程数
  11. win10豆沙绿设置
  12. el-empty Empty 空状态 自定义图片 使用本地图片
  13. rtl8723be无线网卡不稳定
  14. 微信强制使用本机浏览器打开指定链接是怎么做的
  15. Youtube到底怎么读?你读对了吗?
  16. 美国的非农数据一般会在几点发布
  17. 新闻页面数据分页and添加新闻评论
  18. 生成对抗网络7日打卡营来了!GAN就对了!
  19. Linux安装及管理应用程序
  20. 六种方法实现JavaScript数组去重

热门文章

  1. 7-3 懒虫小鑫 (10 分)(C语言版)
  2. 卫星位置计算基础讲解
  3. 四川师范大学计算机科学学院周雄俊简历,润物无声,花开有时 川师附小教师让教育更纯粹...
  4. Github testerSunshine/12306 Linux系统部署
  5. Mybatis 实现原理之 一二级缓存
  6. 无线 配置ldap 认证服务器,在无线局域网控制器wlcs上使用ldap的web认证配置示例-cisco.pdf...
  7. uni-app 图标字体引用
  8. 成为高级黑客需要的技能
  9. 数据结构与算法(十二)并查集(Union Find)及时间复杂度分析
  10. MySQL数据库——视图