信息与计算科学专业实报告书_第1页
信息与计算科学专业实报告书_第2页
信息与计算科学专业实报告书_第3页
信息与计算科学专业实报告书_第4页
信息与计算科学专业实报告书_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、信息与计算科学专业实报告书课程: Android程序设计 题目: 基于Android平台的云记事本软件 学号:K021241505 姓名: 吴晶晶 任课教师: 陈世强 时间: 2015.11.2 1、 实验目的与要求 掌握Android语言的程序设计方法,理论联系实际,进一步提高学生的软件开发技术,培养学生分析、解决问题的能力,提高学生实践论文撰写能力。 在本次实验中,主要是在基于Android平台下,研究与开发记事本软件, 实现记事本的基本功能。新建文档,编辑文档内容,删除当前文档,并对文档内容进行复制,粘贴,剪切,保存,另存为等功能。同时实现在线备份功能,服务器技术不定。2、 实验内容 1

2、)熟悉Android开发环境,掌握Android程序的编译和运行;2)掌握Android基本编程技术和方法;3)掌握用户界面布局类中视图及视图组及其子类的使用;4)掌握数据存储技术以及在不同应用程序之间的数据如何实现共享;5)对网络编程的相关内容进行一个了解;6)实际操作:在Android平台下,实现记事本的基本要求: (1)新建文档,编辑文档,保存文档; (2)对文档进行备份。3、 实验原理与过程描述实验原理: Android是一种以Linux与JAVA为基础的开放源代码操作系统,主要使用于便携设备。中国大陆地区较多人使用“安卓”。Android操作系统最初由Andy Rubin开发,被谷歌

3、收购后则由Google公司和开放手机联盟领导及开发,主要支持手机与平板。Android平台具有五大优势:1.开放性:开放的平台允许任何移动终端厂商加入到Android联盟中来;2.挣脱运营商的束缚:以前开发商在手机上的彩信铃声下载换成了现在可直接在软件中下载;3.丰富的硬件选择:由于Android平台的开放性,各类厂商推出形色各异的产品,不同的硬件可以在不同的地方使用;4.不受任何限制的开发商:Android平台的开放,形形色色的第三方开发商不断地对各类软件进行包装或开发,特色各异的软件也不断的诞生;5.无缝结合的Google应用:最典型的例子就是Android平台手机将无缝结合一些优秀的Go

4、ogle服务。 Android应用程序: Android以Java为编程语言,使接口到功能,都有层出不穷的变化。一个 Activity 类(class)负责创建视窗(window),一个活动中的Activity就是在 foreground(前景)模式,背景运行的程序叫做Service。两者之间通过由ServiceConnection和AIDL连结,达到复数程序同时运行的效果。如果运行中的 Activity 全部画面被其他 Activity 取代时,该 Activity 便被停止(stopped),甚至被系统清除(kill)。程序人员可以通过 View 类与“XML layout”档将UI放置在

5、视窗上,View的构造函数不需要再Activity中调用,但是Displayable的是必须的,在Activity 中,要通过findViewById()来从XML 中取得View,Android的View类的显示很大程度上是从XML中读取的。至于ViewGroup 是各种layout 的基础抽象类(abstract class),ViewGroup之内还可以有ViewGroup。View 与事件(event)息息相关,两者之间通过Listener 结合在一起,每一个View都可以注册一个event listener。Android 应用程序由一个或多个组件组成:活动(Activity),服务

6、(Service),内容提供器(ContentProcider),广播接收者(BoradcastReceivers),他们合称为“四大组件”。活动是Android应用程序最基本的组件,显示可视化的用户界面,是用户和应用程序交互的窗口,并接收与用户交互所产生的界面信息;Android中的服务了类似于Windows系统中的Windows Service,他运行在后台,是不可见的,没有界面的,生命周期长的组件;内容提供者是Android系统提供的一种标准的共享数据的机制,应用程序可通过ContentProvider访问其他应用的私有数据;广播接收者是用来接收并响应广播信息的组件,与Service一样

7、是不可见的,没有用户界面,他的唯一作用就是接收并响应消息。过程描述: (1)配置环境:基于Java平台下的JDK环境,安装Eclipse软件。在安装了JDK和Eclipse的基础上来安装Android SDK。下载Android SDK后,解压到Eclipse目录下。打开ADV Manager.exe文件,选中要安装的SDK 版本。最后安装插件ADT。 (2)新建一个Android工程项目:此处记事本工程命名为Android。里面内容主要包括存放所有包以及源文件的src文件夹,一个资源管理类的gen目录,资产目录的assets文件夹,存放一些图标,界面文件和应用中用到的文字信息res目录。在d

8、rawable-dpi文件夹中按照图标的分辨率的高低,将要存放的图标放在不同的文件夹下。Layout文件夹主要用来存放界面信息。AndroidMainifest.xml文件是一个全局配置文件,所有要用到的组件都要在该文件中进行申明,以及一些权限和SDK的版权信息也在此处申明。因为在做记事本的过程中没有用到其他文件的相关界面的信息,所以对于其他相关信息还有待深入了解。 (3)界面布局:因为刚开始接触,只能从最简单的界面布局入手。记事本的主要功能是显示当前文档,编辑当前文档,以及新建文档。所以这里只需要三个界面就能实现记事本的基本功能。在layout文件夹中,main.xml文件,即主界面的显示用

9、ListView组件和TextView组件来显示。新建文档notepad.xml界面中,主要包括的信息有,标题和正文。这里用TextView组件、EditText组件以及一个按钮来实现其功能。最后还有一个显示所有记事本里相关内容信息的页面。记事本里的相关信息主要操作在MainActivity.java实现,主要表现是新建的文档信息将在这个界面以列表的形式存在,即LIstView组件的形式存在。长按其中的某一项目录,将会对文档进行编辑或删除。三个界面用到的整体布局都是LinerLayout线性布局,整体按照垂直方向来布局。 (4)基于ListActivity的创建和控制菜单选项创建的Androi

10、dActivity类:这里用五 个重载的方法:onCreate、onCreateOptionsMenu、 onOptionsItemSelected、onListItemClickonActivityResult方法。对于onCtreat()当被activity开始调用时,该方法显示出主界面main.xml文件,创建DatabaseHelper的对象,用来访问数据库,同时显示出SQLite数据库中以前存储的相关文档。ononCreateOptionsMenu()它在activity被用来放置菜单. 它在用户点击菜单时被显示出来, 并且像一个列表一样被上下选择。这里在string.xml创建,定

11、义一个常量menu_insert在类顶onOptionsItemSelected()是菜单元素的另一半, 它被使用在创建菜单的事件 (例如: 当用户选择了 "Create Note" 项目)。其控制我们新的“新增记事”的选项,当它被选择时,onOptionsItemSelected()方法将会调用item.getId()去匹配INSER_ID(我们所使用的用来标识菜单项目的常量), 当匹配上时,再进行一些适当的操作。createDiary()是新添加的一种方法,将简单的创建一个新记录带一个标题,并且带有一个空的记录体,目前,我们还没有途径去编辑记录的内容,所以我们要用一些默

12、认的内容来填充。在onCreate方法中,具体实现代码如下: Override public void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.main); diaryDb =new DiaryDbAdapter(this); diaryDb.open(); 在onCreateOptionsMenu方法中,具体代码如下: Override public boolean onCreateOptionsMenu(Menu menu) super.o

13、nCreateOptionsMenu(menu); menu.add(0,INSERT_ID,0,R.string.menu_insert); menu.add(0,DELETE_ID,0,R.string.menu_delete); return true; 在onOptionsItemSelected方法体中: Override public boolean onMenuItemSelected(int featureId, MenuItem item) switch(item.getItemId() case INSERT_ID: Log.i("INSERT:", S

14、tring.valueOf(INSERT_ID); createDiary(); return true; case DELETE_ID: Log.i("DELETE_ID:", String.valueOf(getListView().getSelectedItemId(); diaryDb.deleteDiary(getListView().getSelectedItemId(); showListView(); return true; return super.onMenuItemSelected(featureId, item); 添加新方法 createDiar

15、y():实现界面的跳转,在记事本编辑页面进行记事的新创建,主要代码如下: private void createDiary() Intent intent = new Intent(); intent.setClass(this, ActivityDiary.class); startActivityForResult(intent, ACTIVITY_CREATE); 另外创建新方法showListView():主要是进行记事日记的创建之后,用Cousor创建的对象实现对列表的控制,当点击其中的某一事件或记事时,响应相应的事件。private void showListView() curs

16、or = diaryDb.getAllNotes(); String from = new StringDiaryDbAdapter.KEY_TITLE,DiaryDbAdapter.KEY_BODY; int to = new intR.id.text1,R.id.created; ListAdapter cursorAdapter = new SimpleCursorAdapter(this,R.layout.diary_row,cursor,from,to); setListAdapter(cursorAdapter); (5)如何访问和存储在一个SQLite数据库中的文本记录的Data

17、baseDbHelper类,这是一个提供封装了对SQLite的数据访问的类,继承SQLileDatabase类,这里有很多方法为了提取所有的记录行,提取记录行基于记录行id,建立新记录行,删除已有记录行和更新记录行这些操作,控制我们的记录并且允许我们更新记录。 (6)如何使用DiaryAdapter绑定数据到ListView中:一个最简单的途径将数据放入一个ListView,ADiaryAdapter可以是list字符串,或者是数组字符串,然后绑定他们到文本视图的列表行的布局中。这个方法简单的使用dbHelper得到了记录列表。构造一个字符串的List使用每一个行的字符串标题,然后创建一个Di

18、aryAdapter放入定义好的列表中去。 ArrayAdapter 需要字符串的List(List)包含所有项目,然后显示出来; 数据作为记录行从数据库中读出来,并且标题域被作为list字符串被放置。我们指定 notes_row 视图,我们已创建的来放置数据的。 (7)基于Activity的创建以及对新建文档的内容进行编辑的AvtivityDiary类。在这个类中,重载了onCreate方法来显示编辑界面noted.xml文件。对于编辑框里的内容,添加按钮响应事件。当点击按钮后,连接数据库,写入所要编辑的内容进行保存,最后关闭数据库。其中checkInput函数对输入的标题进行检测,判断其是否为空或者已存在相同的标题内容。 (8)基础的屏幕布局,包含如何布局一个列表视图,如何添加Item到activity菜单,和如何交互控制这些菜单选择。选项菜单通过Menu按钮调用菜单。通过onCreatOptionMenu方法,此方法只会调用一次;当菜单需要更新时,在onPrepareOptionMenu方法中进行操作;当选择菜单的时候,在OnOptionItemSelected方法中实现响应事件;调用Menu的add方法添加菜单项。长按一个记事本标题,出现一个子菜单,其主要方法为:覆盖Activity的OnCreateContextMenu方法,调用Menu的addSu

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论