收藏 分销(赏)

简易的记事本android专业课程设计.doc

上传人:二*** 文档编号:4556246 上传时间:2024-09-29 格式:DOC 页数:26 大小:2.76MB
下载 相关 举报
简易的记事本android专业课程设计.doc_第1页
第1页 / 共26页
亲,该文档总共26页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、河南科技学院物联网移动应用开发课程设计汇报设 计 题 目: 简易记事本 班 级: 物联网131班 学 号: 1554119 姓 名: 指 导 教 师: 徐睿 成 绩: 信 息 工 程 学 院课程设计汇报说明一、写汇报前,请认真阅读课程设计汇报说明。二、打印装订要求1、一律用A4纸,双面打印,并左侧装订。汇报正文部分均采取宋体小四。课程设计汇报说明页也打印。2、课程设计概述部分占一页;课程设计内容长度依据实际需要填写;结论和指导老师评语及成绩单独占一页。确保打印格式工整。3、指导老师评语及成绩部分由指导老师填写。三、汇报内容要求1、课程设计目标结合实际自己写,不要雷同。2、课程设计原理简明说明所

2、完成课程设计项目所包含理论知识。3、课程设计内容 这是课程设计汇报极其关键内容。概括整个课程设计过程。(最好在上述内容基础上画出对应流图、设计思绪和设计方法,再配以对应文字进行说明。)一、课程设计概述1、课程设计目标Window操作系统诞生成就了微软帝国,同时也造就了PC时代繁荣,然而现在,以Android和iPhone手机为代表智能移动设备发明和互联网云技术兴起却敲响了PC时代丧钟!这也预示着移动互联网时代(3G)已经来临。 在这个互联网繁荣时代,有一颗超新星,以它独特征能优势和人性化UI设计使它在短短几年快速占领了智能移动设备市场份额,它就是谷歌Android!这也意味着谷歌在移动互联网时

3、代开始抢跑并领跑。 经过调查显示,大部分消费者全部会使用手机记事本功效。伴随手机记事本功效不停加强和完善,手机记事本对于大家意义,已不仅仅像通常记事簿一样简单统计,而是向着更个性化人性化方向发展。Android1系统是开源,它以迅猛姿势已经占领了全球二分之一多市场。记事本在生活和工作也日益凸显出它关键性,它能愈加好地帮助大家愈加好地管理自己工作和生活,极大方便了大家生活。因其开源,我们能够在之上开发安卓记事本软件,同时这也符合广大市场需求。2、课程设计要求设计最终作品包含设计汇报和能成功运行程序,能够达成设计指标要求。每个小组在设计完成后,要经指导老师检验。课程设计汇报每个学生一份,由学习委员

4、收齐后统一交给指导老师。根据课程设计进程,认真完成各个步骤,确保质量,达成目标。3、课程设计原理(1) 设计实现添加事件、保留事件、删除事件、导出事件、添加图片等主功效。(2)利用Android中部分组件和事件监听处理功效实现问题。(3)利用mysql语句来实现数据库设计为用户保留数据。(4)使用debug调试来处理程序运行时碰到问题二、课程设计内容1、软件功效计划(1)软件功效能够提醒用户是否有已写记事本,能够进行记事本标题填写和内容填写,确定后保留。(2) 界面设计进入程序提醒“您还没有开始写日志呢!点击下边Menu按钮开始写日志吧!”,点击图片按钮后进入标题和内容填写界面。2、程序设计

5、(1)记事本组件设计 本项目包含到以下组件:TextView:“记事本”,“新建记事”,“编辑记事”等标题。EditView:“记事本标题”,“内容”等。ImageButton:“写事件”,“保留”,“加图片”按钮。Menu:“编译内容”,“删除目前记事”,“修改目前记事”,“导出目前记事”“帮助”,“相关”等。(2)记事本逻辑设计(i)添加新记事假如目前没有记事,点击“listview中事件”后只有一个菜单选项“添加新记事”,写完记事以后,点击“确定”进行保留。(ii)编辑内容选中要编辑那一个记事,然后点击“listview中事件”菜单,会出现三个选项“新建记事”,“编辑内容”,“删除目前记

6、事”,点击“编辑内容”对被选中记事进行编辑,然后点击“确定”加以保留。(iii)删除记事点击上下键,选中要删除记事,然后点击“listview中事件”菜单,然后点击“删除目前记事”,对选中记事加以删除。(3)记事本存放实现 Android 中一共提供了5种数据存放方法,不过因为存放这些数据全部是其应用程序私有,所以假如需要在其它应用程序中使用这些数据,就要使用Android提供Content Providers。 Content Providers:Android提供一个特殊存放数据类型,它提供了一套标准接口来获取,操作数据。 Shared Preference:用来存放“key-value

7、paires”格式数据,它是一个轻量级键值存放机制,只能够存放基础数据类型。Files:它经过File Input Stream 和 File Output Stream对文件进行操作,不过在Android中,文件是一个应用程序私有,一个应用程序无法读写其它应用程序文件。SQL ite:Android提供一个标准数据库,支持SQL语句。Network:经过网络来存放和取得数据。(i)数据存放之SQLite经过sqlite中增删改查方法来保留、删除、修改、查找数据。来实现对数据操作。代码:public class DBManage private Context mContext = null;

8、private SQLiteDatabase mSQLiteDatabase = null;/用于操作数据库对象private DBHelper dh = null;/用于创建数据库对象Cursor namecursor=null;private String dbName = notepad.db;private int dbVersion = 1;public DBManage(Context context)mContext = context;/* * 打开数据库 */public void open()try dh = new DBHelper(mContext, dbName, n

9、ull, dbVersion); if(dh = null) return ;mSQLiteDatabase = dh.getWritableDatabase();/dh.onOpen(mSQLiteDatabase);Log.i(log, DB is opened);catch(SQLiteException se)se.printStackTrace();Log.i(log, open DB faile);/* 关闭数据库 */public void close()mSQLiteDatabase.close();dh.close();Log.i(log, DB is closed);/获取

10、列表public Cursor selectAll()Cursor cursor = null;tryString sql = select * from travels;cursor = mSQLiteDatabase.rawQuery(sql, null);catch(Exception ex)ex.printStackTrace();cursor = null;return cursor;public Cursor selectById(int id)Cursor cursor = null;tryString sql = select * from travels where _id=

11、 + id +;cursor = mSQLiteDatabase.rawQuery(sql, null);catch(Exception ex)ex.printStackTrace();cursor = null;return cursor;public Cursor selcetPathByName(String name)Cursor cursor=null;tryString sql = select path from icons where filename=+ name +;cursor=mSQLiteDatabase.rawQuery(sql, null);Log.i(log,

12、sql);catch(Exception ex)ex.printStackTrace();Log.i(log, select faile);return cursor;/插入数据public long insert(String title, String content)Log.i(log, readyto insert);long datetime = System.currentTimeMillis();Log.i(log, time-+datetime);long l = -1;tryContentValues cv = new ContentValues();cv.put(title

13、, title);cv.put(content, content);cv.put(time, datetime);Log.i(log, data-+title+content+datetime);l = mSQLiteDatabase.insert(travels, null, cv);Log.i(log, cv.toString();Log.i(log, datetime+l);catch(Exception ex)ex.printStackTrace();l = -1;return l;public long inserticonpath(String filename,String ic

14、onpath)long l=-1;tryLog.i(log, ready to insert icon);ContentValues cv = new ContentValues();cv.put(filename,filename);cv.put(path, iconpath);l = mSQLiteDatabase.insert(icons, null, cv);Log.i(log, insert iconname success);catch(Exception ex)ex.printStackTrace();l = -1;return l;/删除数据public int delete(

15、long id)int affect = 0;tryLog.i(log,try to delete the data in databases);affect=mSQLiteDatabase.delete(travels,_id=?,new Stringid+);Log.i(log, delete success);catch(Exception ex)ex.printStackTrace();affect = -1;Log.i(log, delete faile);return affect;/修改数据public int update(int id, String title, Strin

16、g content)int affect = 0;tryContentValues cv = new ContentValues();cv.put(title, title);cv.put(content, content);affect=mSQLiteDatabase.update(travels,cv,_id=?,new Stringid+);catch(Exception ex)ex.printStackTrace();affect = -1;return affect;(ii)数据存放之Files我们能够经过自定义copyfile()方法来复制数据代码:/复制文件public int

17、copyfile(String from,String into)try copyfrom=new FileInputStream(from); copyinto=new FileOutputStream(into); Log.i(log, fuck you); byte bt = new byte1024; int c; while(c=copyfrom.read(bt) 0) copyinto.write(bt,0,c); copyfrom.close(); copyinto.close(); Log.i(log, copy success); return 1; catch (FileN

18、otFoundException e) e.printStackTrace(); return -1; catch (IOException e) e.printStackTrace(); return -1; 3、程序开发(1)主activity设计当选择“新建记事本”,“编辑内容”,“删除目前记事”等菜单选项时对应操作代码:public void initAdapter() dm.open();/打开数据库操作对象 cursor = dm.selectAll();/获取全部数据 cursor.moveToFirst();/将游标移动到第一条数据,使用前必需调用 int count = cu

19、rsor.getCount();/个数 ArrayList items = new ArrayList(); ArrayList times = new ArrayList(); for(int i= 0; i +item.getItemId();tryLog.i(log, cursor ready move );Log.i(log, menuInfo position +menuInfo.position);cursor.moveToPosition(menuInfo.position);Log.i(log, cursor move success);adapter.removeListIt

20、em(menuInfo.position);/删除数据adapter.notifyDataSetChanged();/通知数据源,数据已经改变,刷新界面dm.close();catch(Exception ex)ex.printStackTrace();break; case 1:/修改 try cursor.moveToPosition(menuInfo.position); /用于Activity之间通讯 Intent intent = new Intent(); /通讯时数据传送 intent.putExtra(id, cursor.getString(cursor.getColumnI

21、ndex(_id); intent.putExtra(state, ALERT_STATE); intent.putExtra(title, cursor.getString(cursor.getColumnIndex(title); intent.putExtra(time, cursor.getString(cursor.getColumnIndex(time); intent.putExtra(content, cursor.getString(cursor.getColumnIndex(content); /设置并开启另一个指定Activity intent.setClass(Main

22、Activity.this, EditTravels.class); MainActivity.this.startActivity(intent); finish(); catch(Exception ex) ex.printStackTrace(); break; case 2:/查看 try cursor.moveToPosition(menuInfo.position); Intent intent = new Intent(); intent.putExtra(id, cursor.getString(cursor.getColumnIndex(_id); intent.putExt

23、ra(title, cursor.getString(cursor.getColumnIndex(title); intent.putExtra(time, cursor.getString(cursor.getColumnIndex(time); intent.putExtra(content, cursor.getString(cursor.getColumnIndex(content); intent.setClass(MainActivity.this, CheckTravels.class); MainActivity.this.startActivity(intent); catc

24、h(Exception ex) ex.printStackTrace(); break; case 3:/导出 try cursor.moveToPosition(menuInfo.position); String title=cursor.getString(cursor.getColumnIndex(title); String content=cursor.getString(cursor.getColumnIndex(content); HM.htmlmanager(title, content); copyicon(title,content); Toast.makeText(Ma

25、inActivity.this, 导出成功,快去SD卡 记事本 里找出来分享吧!, Toast.LENGTH_LONG).show(); catch(Exception ex) Toast.makeText(MainActivity.this, Sorry!导出失败!, Toast.LENGTH_LONG).show(); ex.printStackTrace(); break; default:; dm.close();return super.onContextItemSelected(item); (2)修改内容代码:public class EditTravels extends Ac

26、tivityprivate static final int SELECT_IMAGE =123;int rotate = 0; private EditText titleedit;private EditText travelsedit;private ImageButton save;private ImageButton insertimage;private ImageButton takephoto;private String idString;private int id2;private String title=;private String travelsdata = ;

27、private String timeText = ;public Cursor cursor=null;public String namestr=;private DBManage dm=null;private Bitmap bitmap = null;private String path = null;private int state =-1;Overrideprotected void onCreate(Bundle savedInstanceState) / TODO Auto-generated method stubsuper.onCreate(savedInstanceS

28、tate);setContentView(R.layout.edittravels);titleedit=(EditText)findViewById(R.id.titleedit);travelsedit=(EditText)findViewById(R.id.travelsedit);save=(ImageButton)findViewById(R.id.save);save.setOnClickListener(new saveListener();insertimage=(ImageButton)findViewById(R.id.insertimage);insertimage.se

29、tOnClickListener(new insertimageListener();dm=new DBManage(this);Intent intent = getIntent();state = Integer.parseInt(intent.getStringExtra(state);Log.i(log, state-+state);if (state=2)idString =intent.getStringExtra(id);Log.i(log, id-+idString);id2 = Integer.parseInt(idString);title = intent.getStri

30、ngExtra(title);travelsdata = intent.getStringExtra(content);timeText = intent.getStringExtra(time);titleedit.setText(title);dm.open();int i=0;int start=0;int end=0;String str1=null;String str2=;String str4=;String iconname=null;SpannableString travelsSpan =new SpannableString(travelsdata);for(i=0;i+

31、count);BitmapFactory.Options options =new BitmapFactory.Options();options.inJustDecodeBounds =true;bitmap =BitmapFactory.decodeFile(path, options); /此时返回bm为空options.inJustDecodeBounds =false;int be = (int)(options.outHeight/ (float)100);if (be +title);Log.i(log, travels-+travelsdata);trydm.open();if

32、(state=1)dm.insert(title, travelsdata);if (state=2)Log.i(log, ready to alter);dm.update(id2, title, travelsdata);dm.close();catch(Exception ex)ex.printStackTrace();Intent gobackIntent=new Intent(EditTravels.this,MainActivity.class);EditTravels.this.startActivity(gobackIntent);finish();/插入图片点击事件class

33、 insertimageListener implements OnClickListenerpublic void onClick(View v) Intent intent=new Intent(Intent.ACTION_GET_CONTENT); intent.addCategory(Intent.CATEGORY_OPENABLE); intent.setType(image/*); intent.putExtra(return-data, true); startActivityForResult(intent, SELECT_IMAGE);Overrideprotected vo

34、id onActivityResult(int requestCode, int resultCode, Intent data) super.onActivityResult(requestCode, resultCode, data);if (resultCode = RESULT_OK)path=getpath(data.getData();BitmapFactory.Options options =new BitmapFactory.Options(); options.inJustDecodeBounds =true; /获取这个图片宽和高 bitmap =BitmapFactory.decodeFile(path, options); /此时返回bm为空 options.inJustDecodeBounds =false; /计算缩放比 int be = (in

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
百度文库年卡

猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服