`

2011.09.26——— android sample之Notepad(notepadprovider)

阅读更多
2011.09.26——— android sample之Notepad(notepadprovider)

1、SQLiteQueryBuilder
SQLiteQueryBuilder 是一个构造SQL查询语句的辅助类。

首先,
qb.setTables(DIARY_TABLE_NAME)


然后
qb.setProjectionMap(Map)
这个事设置表明的映射
例如
Map.put(Notes._ID, Notes._ID);
Map.put(Notes.Name, Notes.Title + " as " +Notes.ID);

接着
qb.appendWhere();
选着性的 主要用于查询单个记录
qb.appendWhere(Notes._ID + "=" + uri.getPathSegments().get(1));

最后
SQLiteDatabase db = mOpenHelper.getReadableDatabase()//得到一个可读的SQLiteDatabase 实例。
Cursor c = qb.query(db, projection, selection, selectionArgs, null,null, orderBy)

这个查询类似于一个标准的SQL查询,但是这个查询是SQLiteQueryBuilder 来发起的,而不是SQLiteDatabase 直接发起的,所以在参数方面略有不同。这个函数为 query(SQLiteDatabase db, String[] projectionIn, String selection, String[] selectionArgs, String groupBy, String having, String sortOrder, String limit)下边将各个参数介绍一下。

第一个参数为要查询的数据库实例。

第二个参数是一个字符串数组,里边的每一项代表了需要返回的列名。

第三个参数相当于SQL语句中的where部分。

第四个参数是一个字符串数组,里边的每一项依次替代在第三个参数中出现的问号(?)。

第五个参数相当于SQL语句当中的groupby部分。

第六个参数相当于SQL语句当中的having部分。

第七个参数描述是怎么进行排序。

第八个参数相当于SQL当中的limit部分,控制返回的数据的个数。

2、cursor.setNotificationUri
参考:http://blog.chinaunix.net/space.php?uid=20665441&do=blog&id=1742298

setNotificationUri通常用在ContentProvider.query(),c.setNotificationUri(getContext().getContentResolver(), uri); 是用在cursor被建立后,如果內容被改变时,cursor会自已知道已经不是最新状态而自行requery.

源码里面也是建一个SelfContentObserver,调用registerContentObserver()方法来实现的

3、getType
参考:http://hi.baidu.com/ljlkings/blog/item/b5e752c9410103ee53664f4a.html

返回目前操作的数据的MIME类型

也就是说你想通过mime类型类调用组件的时候 就需要实现getType()
<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>


@Override
    public String getType(Uri uri) {
        switch (sUriMatcher.match(uri)) {
        case NOTES:
        case LIVE_FOLDER_NOTES:
            return Notes.CONTENT_TYPE;

        case NOTE_ID:
            return Notes.CONTENT_ITEM_TYPE;

        default:
            throw new IllegalArgumentException("Unknown URI " + uri);
        }
    }


一般来说:

如果操作的数据属于集合类型,那么MIME类型字符串应该以vnd.android.cursor.dir/开头,
例如:要得到所有person记录的Uri为content://cn.itcast.provider.personprovider/person,
那么返回的MIME类型字符串应该为:“vnd.android.cursor.dir/person”。
如果要操作的数据属于非集合类型数据,那么MIME类型字符串应该以vnd.android.cursor.item/开头,
例如:得到id为10的person记录,Uri为content://cn.itcast.provider.personprovider/person/10,
那么返回的MIME类型字符串应该为:“vnd.android.cursor.item/person”。

分享到:
评论

相关推荐

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

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

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

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

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

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

    Notepad++.7.6.1.bin.x64.rar

    《Notepad++.7.6.1.bin.x64.rar——高效文本编辑器的绿色免安装体验》 Notepad++是一款广受欢迎的免费源代码编辑器,尤其在编程领域,它以其强大的功能和高度的可定制性深受程序员喜爱。标题中的"Notepad++.7.6.1....

    学习windows的好东西:注册表命令大全

    26. **`winchat`** —— Windows聊天工具。 27. **`progman`** —— 程序管理器。 28. **`winmsd`** —— 系统信息工具。 29. **`perfmon.msc`** —— 性能监视器。 30. **`winver`** —— 显示Windows版本信息。 31...

    notepad_share_encrypt.hdoc..bin

    notepad_share_encrypt.hdoc..bin

    npp.8.3.3.Installer.x64.exe Notepad++

    npp.8.3.3.Installer.x64.exe Notepad++

    带Androidlogger插件的notepad++

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

    Notepad++-x86-Androidlog.zip

    本篇文章将详细介绍如何利用Notepad++的特定版本——Notepad++-x86-Androidlog.zip,来实现对Android设备的adb日志(adb logcat)的实时查看。 首先,我们需要了解adb(Android Debug Bridge),它是Android开发者...

    android入门Notepad+源代码.rar

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

    npp.7.8.Installer.exe 最新notepad++编辑工具

    尽管Notepad++最初是为替换Windows的默认记事本而创建,但其不断进化的特性使其成为专业开发者的首选工具之一。 安装文件"npp.7.8.Installer.exe"是Notepad++ 7.8版本的安装程序,用户可以通过运行这个文件来在自己...

    Notepad工具npp.7.8.8.Installer

    首先,Notepad++的强大之处在于其对多种编程语言的支持。从HTML、CSS到JavaScript,再到Python、C++和Java,几乎涵盖了所有主流的编程语言。每种语言都有相应的语法高亮显示,使得代码更加清晰易读,有助于开发者...

    android sdk 自带 实例(samples)

    The list below provides a summary of the sample applications that are available with the Android SDK. Using the links on this page, you can view the source files of the sample applications in your ...

    开始→运行→输入的命令集锦.txt

    `notepad` —— 记事本 `notepad` 命令用于启动记事本程序,这是一个简单的文本编辑器,可用于创建或编辑文本文件。 #### 11. `cleanmgr` —— 磁盘清理工具 `cleanmgr` 命令用于启动磁盘清理工具,可以帮助用户...

    AndroidLogger——MGYH.zip

    【AndroidLogger——MGYH.zip】是一个与Android平台相关的压缩包,从文件名可以推测它包含了一个名为"AndroidLogger"的组件或者库。这个组件可能是用于日志记录和调试目的,帮助开发者收集和分析应用程序运行时的...

    notepad++.7.9.3.Installer.7z

    《深入解析Notepad++ 7.9.3安装程序》 Notepad++,这款小巧而功能强大的文本编辑器,自其诞生以来就深受广大程序员、开发者以及文本处理爱好者的喜爱。7.9.3版本是该软件的一个稳定迭代,不仅在性能上有所提升,...

    cmd命令大全2010

    notepad —— 记事本 - **功能**: 打开记事本程序,用于编辑纯文本文件。 - **应用场景**: 快速创建或修改文本文件。 #### 11. cleanmgr —— 磁盘清理 - **功能**: 启动磁盘清理工具,用以释放硬盘空间。 - **...

    Notepad++(npp.8.4.1.portable.arm64.zip)

    在描述中,"Notepad++(npp.8.4.1.portable.arm64.zip)"重复了标题的信息,暗示该压缩包包含的是Notepad++的特定版本,适用于基于ARM64处理器的设备,如某些现代的Android平板或基于Arm的Windows电脑。便携式版本...

    Notepad++安装包(npp.8.7.1.Installer.x64)

    Notepad++安装包(npp.8.7.1.Installer.x64)

    官方版Notepad++7.9.3.exe安装包windows系统64位

    Notepad++是一款非常受欢迎的免费源代码编辑器,尤其在Windows操作系统中被广泛使用。它支持多种编程语言的语法...Notepad++ 7.9.3的64位版本确保了在现代计算机上的高效运行,是Windows用户不可或缺的开发工具之一。

Global site tag (gtag.js) - Google Analytics