这一个月,自己开发了一个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、系统相应权限的配置;
从项目中学习,从学习中不断加油进步,项目第一版源代码下载: