便签小项目总结

这一个月,自己开发了一个android小项目,xin便签的管理,它可以添加、删除、修改便签,同时还可以给便签设置相应的铃声,也可以添加删除文件夹,将便签移入或移出文件夹,通过小项目的开发,对自己之前学的android基础知识进行了一个小小的总结,基本上用到了Activity、Service、Content provider、BroadcastReceiver四大组件,以及数据库的操作SQLiteDatabase、Handler使用、ListView和自定义适配器的灵活运用、AlarmManager、Activity生命周期的深入理解、自定义组件、AndroidManifest.xml中的一些配置等基础知识,让我对这些知识点又有了一个更为清晰的理解!

便签功能图:

系统采用android自带的数据库保存数据,开发模式采用MVC模式,开发设计思路及实现:

一、主页面:MainActivity,主要包括便签或文件夹的列表展示,单击Menu菜单,即可进行相应的功能操作:添加、删除便签或文件夹,根据相应的数据条数动态显示Menu菜单,其中的主要几个函数:

onCreate(Bundle savedInstanceState);生命周期函数,一般完成Activity的初始化操作;

onSaveInstanceState(Bundle outState):当出现特殊情况,例如突然来电或者按home键回到主页面的时候,会触发的生命周期函数,用于保存数据;

onRestoreInstanceState(Bundle savedInstanceState):重新启动后,取出所保存的信息;

onBackPressed();单击返回按键所触发的函数,我们可以在这里对程序关闭进行程序控制,例如连续单击两次返回键即可退出程序;

onCreateOptionsMenu(Menu menu);创建菜单,通过menu.add方法进行,其中add方法接收四个参数,1:组别,如果不分组的话就写Menu.NONE,2:Id,android根据这个ID来确定不同的菜单,3:顺序:哪个菜单在前面由这个参数决定,4:菜单显示的文本。一般还会给菜单项添加一个图标以示美观,例如.setIcon(R.drawable.new_note)

onPrepareOptionsMenu(Menu menu);该方法也可用于创建菜单,与上面不同的是,onCreateOptionsMenu:在activity创建的时候只执行一次,onPrepareOptionsMenu:每次点击menu都会重新调用,如果菜单需要更新,就用该方法,所以创建动态菜单一般在该方法中进行相应的程序控制;

onOptionsItemSelected(MenuItem item);给Menu菜单添加单击事件;

onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo);长时间单击ListView中某一项后出现的Menu列表项,我们可以调用如下方法获得该ListView的ID:我们需要实现OnCreateContextMenuListener接口

AdapterView.AdapterContextMenuInfo info=(AdapterView.AdapterContextMenuInfo)menuInfo;

int positionId=info.position;

onContextItemSelected(MenuItem item);单击列表项中的某一项操作,同样我们可以使用下面方法获得某一项Menu的信息:AdapterContextMenuInfo menuInfo=(AdapterContextMenuInfo)item.getMenuInfo();

onCreateDialog(int id, Bundle bundle);根据ID创建本Activity页面对话框,我们可以调用Activity中的showDialog(int id)方法来显示对应ID的对话框;

onItemClick(AdapterView<?> parent, View view, int position, long id):ListView中的单击事件,我们需要在Activity中实现OnItemClickListener接口;

onClick(View v);Activity页面控件的单击事件;

主页面中的ListView运用十分灵活,所以我们需要给ListView自定义适配器继承自BaseAdapter,然后重写里面的getView方法,在里面控制我们需要显示的控件;

二、闹铃设置的实现:闹铃需要的设置包括设置规范合理的时间、日期、以及是否震动、系统铃声的选择,当这些都设置完成后,点击开启闹铃,即会调用AlarmManager并通知广播设置闹铃,在广播中我们会启动一个Activity来显示设置闹铃通知后显示给用户的信息界面,并在该显示给用户的Activity页面中国调用Service来播放我们的闹铃!

三、数据操作实现:系统使用android自带数据库操作,通过DBOpenHelper继承自SQLiteOpenHelper,在ManagerImpl类中通过DBOpenHelper和SQLiteDatabase对便签数据库进行增删查改操作

四、查询实现:系统提供Contentprovider来共享便签数据,并对便签信息提供相应的查询

五、其他实现:

1、系统提供开机广播,来操作设置便签闹钟提示方面的信息;

2、在AndroidMainfest.xml中配置查询信息,点击操作菜单查询按钮,即可对根据标题或内容对便签信息进行查询:

在Activity中设置查询:

   <activity
            android:name=".EditNoteActivity"
            android:configChanges="keyboardHidden|orientation|screenLayout|locale"
            android:launchMode="singleTop"
            android:windowSoftInputMode="stateVisible|adjustResize" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <action android:name="android.intent.action.SEARCH" />
            </intent-filter>

            <!-- 配置Activity中搜索 -->
            <meta-data
             android:name="android.app.searchable"
             android:resource="@xml/searchable" />
        </activity>

设置全局搜索:

        <!-- 配置全局搜索 -->
        <meta-data android:name="android.app.default_searchable"
         	android:value=".EditNoteActivity"/>

执行搜索会调用Activity中相应的onNewIntent(Intent intent)方法,在其中执行我们的查询操作;

3、系统相应权限的配置;

从项目中学习,从学习中不断加油进步,项目第一版源代码下载:

时间: 2024-10-10 01:53:21

便签小项目总结的相关文章

Android轻量级便签应用项目源码

作者Jhuster,源码JNote,一款支持部分Markdown语法的轻量级便签软件.应用说明:一款轻量级的便签软件,界面简单干净,绿色无广告.支持部分Markdown语法,可以方便地输入和预览Markdown文本,并且生成长微博图片保存到本地. 详细说明:http://android.662p.com/thread-6420-1-1.html <ignore_js_op> <ignore_js_op><ignore_js_op> <ignore_js_op>

win7桌面便签。自带的

新建WIN7下的桌面便签小程序 桌面—>新建 快捷方式-> 输入%windir%\system32\StikyNot.exe

便签项目需求分析与建议-NABCD模型

我们吃饭要排队的项目为便签APP,以下是项目需求分析与建议的NABCD模型: N(Need需求): 我们的APP面向广大群体,适合所有人使用.现在越来越少的人使用纸质材料来记录.这款软件正是满足用户记录的需求,你可以在这里记录下所有你想记录的东西,不管是某个时刻的心情.灵感,还是看到喜欢的文字.图片,随手记录下来,简单又方便. A(Approach做法): 我们整个项目一共三个开发人员,自学能力强的人员负责项目的一些高难度的突破性人物,擅长使用模板框架的人员负责界面的开发美化,还有了解数据传输的

PyQt 实战:简易便签软件的制作

便签软件 为什么写便签软件 一直都有做一个笔记软件的想法,而我给笔记软件设计的一个特色功能就是它的便签功能.不过由于各种原因,笔记软件无法完成,但是他的便签功能也可以脱离笔记单独存在.不过功能也随着有着相应的变化 我们可能每天都需要一个计划表来帮助我们更加高效的工作,在windows上我们可能会使用它自带的便签软件,也有一些其他的改进版,但是我认为他们不够友好.于是我非常期待一个功能出色的便签.(我自己写的这个也只能说是个雏形,需要以后进行加工) 它具有什么特点 我和几个同学交流过,从用户角度上

IOS-小项目(饿了么 网络部分 简单实现)

在介绍小项目之前,在此说明一下此代码并非本人所写,我只是随笔的整理者. 在介绍之前先展现一下效果图. 看过效果图大家应该很熟悉了,就是饿了么的一个界面而已,值得注意的是,实现时并没有采用本地连接,而是实打实的网络连接.看一下文件架构. 这一采用的是MVC设计模式,虽然文件很少,但是也可以看. 下面开始正式介绍小项目的实现. 首先介绍Model的实现,很简单,实现模型即可, Shop.h // // Shop.h // CX-小项目(饿了么 网络部分 简单实现) // // Created by

NABC团队开发-----电子秘书(便签+闹钟+音视频)

团队开发-----电子秘书(便签+闹钟+音视频) 团队博客地址:http://www.cnblogs.com/BWCK/ 队长:崔鹏勃 队员:白杰,王炳午,孔维春 开发项目:便签闹钟 N需求:事情多,爱忘事 ,异地恋等 A做法:需要先将音频录制并保存到手机APP客户端,并设置日期时间 B好处:方便安排,使忙人不再多忘事 C竞争:需要做到界面美观,音视屏,图片,要使顾客可以做到无脑操作.

团队开发-----电子秘书(便签+闹钟+音视频)

团队博客地址:http://www.cnblogs.com/BWCK/ 队长:崔鹏勃 队员:白杰,王炳午,孔维春 开发项目:便签闹钟 需求:事情多,爱忘事 ,异地恋等 做法:需要先将音频录制并保存到手机APP客户端,并设置日期时间 好处:方便安排,使忙人不再多忘事 竞争:需要做到界面美观,音视屏,图片,要使顾客可以做到无脑操作.

一个简易的便签工具:探索窗体之间传值和传引用的方法

简单的便签工具:实现了基于文本的便签信息的浏览,删除,添加.可以查看时间,实时更新数据. 这个便签工具完全基于面向对象的编程方式,首先定义Note类,然后使用NoteManager类进行便签的管理.其中的关键就是在NoteManager类中定义list<Note>泛型集合.原理上和ArrayList基本是一致的. NoteManager的工作原理: public List<Note> list;//定义一个泛型集合,并在构造函数中初始化. private int CurrentIn

android widget 开发实例 : 桌面便签程序的实现具体解释和源代码 (上)

如有错漏请不吝拍砖指正,转载请注明出处,很感谢 桌面便签软件是android上经常使用软件的一种,比方比較早的Sticky Note,就曾很流行, Sticky Note的介绍能够參见 http://www.tompda.com/c/article/11778/ 而实际上使用android平台对widget开发的支持,桌面便签类软件是很易于开发的. 本文通过逐步实现一个简单的桌面便签软件,和大家分享进行widget开发的过程和方法. 1.MyNote的终于实现效果 为了提起大家阅读本文的兴趣,先