`

android Notepad

阅读更多

本文转载http://android.yaohuiji.com/archives/2575,图片,代码没有写上来了,用于积累,后面有附件为最后的代码工程

我们分三讲来做这个项目,本讲的目标是可以添加、列表和删除笔记,但是每个笔记的内容为空,标题写死,这样我们可以在一个Activity中就可以完成这些的功能。

在Android开发中数据存储最常用的方法就是使用sqlite数据库,这次也一样,我们创建一个SQLiteOpenHelper的子类来处理和数据库相关的操作,它把数据库简单的做了一点封装。下面是它的代码,同样相关解释写在注释里了:

现在我们该写MainActivity.java部分了,这次我们的Activity继承的是ListActivity类,关于ListActivity的知识需要补补课的同学点这里。在这部分的代码里,我们把数据对象辅助对象(DbHelper)和数据库对象(db)作为成员变量提供给其他方法,让他们可以进行数据库操作,在onCreate()方法中给这两个对象赋值。然后我们定义Option菜单,作为添加新笔记的入口,我们定义上下文菜单来处理删除某个笔记的工作。如果看着比较辛苦的话建议再回过头去复习一下关于两种菜单的知识,下面我们看看代码:

c点击键盘上的Menu按钮呼出Option菜单

d点击“新建”就能直接建立好了一条笔记,你懂得我们在代码里写死了每篇笔记的标题和内容

e在Note 2 上长时间按住不送手就会触发长按(OnLongClick)事件,它触发上下文菜单,如果你要问我它是如何触发上下文菜单的,那就去看一下 registerForContextMenu() 方法的解释^_^。你知道的上下文菜单里就一个菜单项那就是删除…

f 点击删除,Note 2 消失,数据重新载入( fillData )

下一讲我们将提供另一个Activity,专门负责添加和修改笔记内容。╮(╯▽╰)╭我和你一样期待下一讲的到来。

 

上述代码中,addNote()方法是不是已经改过了?当你点击新建菜单时,程序生成一个Intent对象,并由MainActivity窗口使用startActivityForResult()方法发送出去,此方法和startActivity方法的不同之处在于,发送此方法的Activity是要求对方生命周期结束时返回信息给它的。而接受返回信息的的方法就是onActivityResult() ,而这个方法里通过判别requestCode来决定是新建笔记还是修改原有笔记。

 

当我们增加了一个Activity之后,别忘了在AndroidManifest.xml中加入对该Activity的签名,否则系统是不知道该Activity的存在的

 

点击写好了,可以保存修改正常返回列表。但是————– 在编辑状态点击WPOFKV7VF_2N7BRLMPR`8SA按钮终止EditAcitivity时程序就会报错!

 

看logcat中的错误信息:

09-01 05:46:11.628: ERROR/AndroidRuntime(1103): java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1, result=0, data=null} to activity {android.lesson45/android.lesson45.MainActivity}: java.lang.NullPointerException

说明按返回按钮的时候,并没有发送结果给MainActivity窗口。更要命的是正在编辑的信息会丢失,而这一情形在Android开发中经常遇到,譬如你正在写笔记,这时来电话了,那么你的编辑界面可能就进入后台,而你写的信息将会丢失……

好吧,这个问题我们下一讲再来个彻底的解决。这个关子不是我卖的,是官方Notepad Tutorial这么干,我觉得它这么编排还是蛮有道理的,这一讲实际上重点操练的是Activity之间传递数据,你说对吧。

下讲继续,再见各位。

 

上一讲我们有一个问题就是EditActivity窗口非正常关闭后,数据无法保存,也无法向MainActivity窗口传递附加数据而报错。所以我们想了一个解决办法。。。。。。。。。那就是不向MainActivity传数据了,数据直接在EditActivity中读取、修改、保存,而且设置在EditActivity暂时切换到后台是保存现场到savedInstanceState这个Bundle对象中去,并在下次显示是还原出来,好了思路就是这样,下面具体看看代码…… 还是睡觉吧,明天再继续。

分享到:
评论

相关推荐

    android NotePad便签源码.rar

    【标题】"Android NotePad便签源码"是一款基于Android平台的开源便签应用源代码。这个项目提供了Android系统中基础记事本功能的实现,是开发者学习Android应用开发,尤其是UI设计、数据存储和基本功能实现的一个良好...

    android notePad solution 源码

    【标题】:“Android NotePad Solution 源码分析” 在这个教程中,我们将深入探讨一个名为“NotePad”的Android应用程序的源代码。这个源码实例来源于Android开发者官方教程,旨在帮助开发者理解如何在Android平台...

    Android NotePad便签-IT计算机-毕业设计.zip

    《Android NotePad便签应用详解——为毕业设计提供灵感与实践》 在IT计算机领域,尤其是在移动应用开发中,Android平台占据了重要的地位。对于学生来说,Android应用的毕业设计不仅能够展示编程技能,还能深入理解...

    Android代码-Notepad

    • Optionally create rich-text notes using Markdown or HTML (Android 5.0 ) • Beautiful, easy-to-use UI with Material Design elements • Dual-pane view for tablets • Share notes to and receive text ...

    带Androidlogger插件的notepad++

    【标题】"带Androidlogger插件的notepad++"是一个专为Android开发者设计的文本编辑器增强版本,它集成了Androidlogger插件,使得在使用Notepad++进行Android代码编辑时,可以方便地查看和分析日志信息。Notepad++...

    android入门Notepad+源代码.rar

    Android入门教程:Notepad+源代码解析 在Android开发领域,初学者往往需要从简单的项目开始学习,以便逐步掌握这个强大的移动平台的工作原理。"Notepad+"是一个经典的入门级项目,它模仿了桌面操作系统中的记事本...

    Notepad++ 插件,AndroidLogger.V1.2.7. 可以让安卓日志自动显示颜色

    AndroidLogger.V1.2.7 是专为Notepad++设计的一个插件,它针对Android开发人员优化了日志查看体验。 Android应用程序在开发过程中会产生大量的日志信息,通常这些日志是以纯文本格式存储,以.log为扩展名。默认情况...

    Notepad++插件AndroidLogger 64位版本

    AndroidLogger是Notepad++的一个查看android log的插件,不过由于近期插件没有更新,而自己使用的NDP7.6已经是64位版本了,不能再直接使用了。于是找来源码重新发布了64位版本,希望能有所帮助。

    android练习-notePad

    【标题】"Android练习-notePad" 是一个针对Android平台的简单笔记应用的开发实践项目,旨在帮助开发者加深对Android编程的理解和应用。这个项目可能是基于一个基础的记事本应用程序,提供基本的文本编辑和存储功能,...

    android版的notepad的源码

    在Android平台上,Notepad是一款非常基础的记事本应用,它的源码对于初学者和开发者来说,是一个很好的学习资源。这个源码可以帮助我们理解Android应用的基本结构、UI设计、数据存储以及事件处理等核心概念。 1. **...

    Android 4.0 Notepad 源代码

    Android 4.0 Notepad 源代码是一个深入理解Android应用程序开发的重要实例,特别是对于那些想要学习或增强在Android平台上构建简单文本编辑器应用技能的人来说。这个源代码提供了Android 4.0 Ice Cream Sandwich ...

    2011.09.23——— android sample之Notepad(context menu)

    标题中的“2011.09.23——— android sample之Notepad(context menu)”表明这是一个关于Android应用开发的示例项目,具体是针对Notepad应用的上下文菜单(Context Menu)功能的实践。在Android开发中,上下文菜单是...

    win7 64 位 安卓logger Notepad++ 工具,下载解压后直接使用。

    Notepad++是一个流行的开源文本编辑器,它支持多种编程语言,包括用于Android开发的编程语言如Java。在描述中再次强调了该工具包适用于Notepad++,并且提示用户下载解压后即可直接使用,意味着这是一个便捷的、预...

    Notepad android 记事本 源码

    《Android SDK 1.6与Eclipse环境下的Notepad记事本源码解析》 在Android应用开发领域,Notepad项目是初学者入门的经典案例,它是一个简单的记事本应用程序,帮助开发者理解基本的Android UI设计、数据存储以及事件...

    Android记事本notepad源代码

    "Android记事本notepad源代码"是一个适合初学者实践的项目,它展示了如何构建一个简单的记事本应用。 首先,我们需要了解Android应用程序的基本结构。一个Android项目通常包含以下几个主要部分: 1. **...

    Notepad++-x86-Androidlog.zip

    《使用Notepad++进行Android日志查看:adb插件与logcat实操指南》 Notepad++是一款广受欢迎的开源文本编辑器,尤其在程序员群体中有着极高的使用率。其强大的自定义功能和丰富的插件库使得它不仅仅是一个简单的文本...

    android SDK 下 NotePad例子详解

    "NotePad"是Android SDK中一个经典的示例应用,主要用于教授基本的数据库操作、UI设计以及活动(Activity)管理等Android开发核心概念。 首先,NotePad应用展示了如何创建一个简单的笔记管理应用。在这个应用中,...

    记事本程序

    从标签“android notepad”我们可以推断,这是一个针对Android系统的记事本应用。Android是Google开发的一种开源移动操作系统,广泛应用于智能手机和平板电脑。开发者通常使用Java或Kotlin语言,结合Android SDK...

    安卓Android源码——NotePad便签.zip

    《安卓Android源码——NotePad便签》 在Android操作系统中,NotePad是经典的示例应用,用于展示基本的数据库操作、UI设计以及事件处理等核心功能。这个压缩包文件包含的就是NotePad应用的源代码,是学习Android开发...

    MyNote.zip

    【标题】: "Android NotePad 应用开发实践——结合JetPack Room库" 【描述】: 本资源是一个关于在Android平台上开发一个简单的记事本应用(NotePad)的示例,利用了Google的JetPack组件库中的Room库进行数据持久化...

Global site tag (gtag.js) - Google Analytics