技术开发 频道

OPhone学习笔记 - 记事本实例

  【IT168 技术文档】Android(OPhone) 系列学习笔记已经写了三十多篇了,绝大部分文章都是即刻可以上手做出来的例子,从呼叫短信到界面到网络到多媒体,基本都涵盖了手机的常用功能。由于摄像头、蓝牙方面的程序在不能在模拟器上面运行得到效果,所以就没有涉及。在该系列的最后,我会出一个目录合集,将介绍的内容分类,便于大家查看。

  作为系列笔记的结尾,介绍一个略微复杂的“大工程”,系统自带的记事本实例。通过该例子,我们可以学会如何去阅读、分析、学习、模仿、思考他人写的代码。

  一、工程结构

  该工程位于SDK自带的Android的exmaple中。

  与我们之前看到的不同的是,该工程有多个java文件,不要担心,这是为了使程序的结构清晰,大多文件中代码只有几行而已。

  1.AndroidManifest.xml

  前面罗嗦而又有必要地说了它用的是Apache License 2.0,接下来可以清晰地看到,该程序有一个provider和三个activity。

  provider中,这里声明了一个NotePadProvider。

<provider android:name="NotePadProvider" android:authorities="com.google.provider.NotePad"
/>

  在代码中找到NotePadProvider.java这个文件,它用来管理数据库的存取以及应用程序间的共享。

  再来看activity中的NotesList,在intent这块:

<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<action android:name="android.intent.action.EDIT" />
<action android:name="android.intent.action.PICK" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="vnd.android.cursor.dir/vnd.google.note" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.GET_CONTENT" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="vnd.android.cursor.item/vnd.google.note" />
</intent-filter>

  这里有三个filter,第一个大家都在前面的程序中见过,指明了这个activity是作为入口activity,系统查找到它后,就会创建这个activity实例来运行。第二个我们猜测它设计了查看、编辑等操作,第三个我们猜测它设计了获取内容的操作。其他的几个activity类似。

  2.layout

  在res/layout中有三个文件,我们可以理解成具有三个界面。

  noteslist_item是记事本的notes列表界面,note_editor是编辑界面,title_editor是标题编辑界面,由文本输入框和按钮构成。

0
相关文章