ContentValues 和HashTable类似都是一种存储的机制 但是两者最大的区别就在于,contenvalues只能存储基本类型的数据,像string,int之类的,不能存储对象这种东西,而HashTable却可以存储对象。

在忘数据库中插入数据的时候,首先应该有一个ContentValues的对象所以:

ContentValues initialValues = new ContentValues();

initialValues.put(key,values);

SQLiteDataBase sdb ;

sdb.insert(database_name,null,initialValues);

插入成功就返回记录的id否则返回-1;

就可以插入一行数据,详细见下面代码

public Uri insert(Uri uri, ContentValues initialValues) {
if (uriMatcher.match(uri) != CONTACTS) {
throw new IllegalArgumentException("unknow uri " + uri);
}
ContentValues values;
if (initialValues != null) {
values = new ContentValues(initialValues);
System.out.println("contentValues插入成功,initailValues不是空的");
} else {
values = new ContentValues();
}
Long now = Long.valueOf(System.currentTimeMillis());
// 设置默认值
if (values.containsKey(ContactColumn.CREATED) == false) {
values.put(ContactColumn.CREATED, now);
} if (values.containsKey(ContactColumn.NAME) == false) {
values.put(ContactColumn.NAME, now);
} if (values.containsKey(ContactColumn.EMAIL) == false) {
values.put(ContactColumn.EMAIL, now);
} if (values.containsKey(ContactColumn.MOBILE) == false) {
values.put(ContactColumn.MOBILE, now);
} if (values.containsKey(ContactColumn.MODIFIED) == false) {
values.put(ContactColumn.MODIFIED, now);
}
System.out.println("应该插入成功了吧");
long RowId = contactsDB.insert(CONTACTS_TABLE, null, values);
if (RowId > 0) {
Uri noteUri = ContentUris.withAppendedId(CONTENT_URI, RowId);
getContext().getContentResolver().notifyChange(noteUri, null);
System.out.println("到这里也是没问题的!");
return noteUri;
}
throw new IllegalArgumentException("unknow uri " + uri);
}

当然以上代码是根据Uri来操作的所以要想明白代码怎么回事?还要明白ContentProvider到底是怎么存储数据的!

【Android】ContentValues的用法的更多相关文章

  1. Android ContentProvider基本用法

    转自:https://www.jianshu.com/p/601086916c8f 一.基本概念 ContentProvider是Android系统中提供的专门用户不同应用间进行数据共享的组件,提供了 ...

  2. 【Android学习】android:layout_weight的用法实例

    对于android:layout_weight的用法,用下面的例子来说明: <LinearLayout xmlns:android="http://schemas.android.co ...

  3. Android之Adapter用法总结-(转)

    Android之Adapter用法总结 1.概念 Adapter是连接后端数据和前端显示的适配器接口,是数据和UI(View)之间一个重要的纽带.在常见的View(List View,Grid Vie ...

  4. Android之Adapter用法总结(转)

    Android之Adapter用法总结 1.概念 Adapter是连接后端数据和前端显示的适配器接口,是数据和UI(View)之间一个重要的纽带.在常见的View(List View,Grid Vie ...

  5. Android webservice的用法详细讲解

    Android webservice的用法详细讲解 看到有很多朋友对WebService还不是很了解,在此就详细的讲讲WebService,争取说得明白吧.此文章采用的项目是我毕业设计的webserv ...

  6. Android之Adapter用法总结

    http://blog.csdn.net/fznpcy/article/details/8658155 Android之Adapter用法总结 1.概念 Adapter是连接后端数据和前端显示的适配器 ...

  7. xamarin android viewpager的用法

    1.什么是ViewPager 通过手势滑动可以完成view的切换,一般是用来app的引导页或则实现图片轮播,类似网页上的banner轮播. Adnroid 3.0后引入的一个UI控件,在xamarin ...

  8. Android开发PreferenceActivity 用法的代码

    将开发过程中常用的一些内容做个收藏,下面资料是关于Android开发PreferenceActivity 用法的内容,希望对大伙有一些用处.public class Setting extends P ...

  9. ZT onActivityResult在android中的用法

    onActivityResult在android中的用法 举例说我想要做的一个事情是,在一个主界面(主Activity)上能连接往许多不同子功能模块(子Activity上去),当子模块的事情做完之后就 ...

随机推荐

  1. CSRFGuard工具介绍

    理解CSRFGuard的基础:http://www.runoob.com/jsp/jsp-tutorial.html 1:您需要做的第一件事是将OWASP.CSRFARGAD.JAR库复制到类路径中. ...

  2. FFmpeg configure: rename cuda to ffnvcodec 2018-03-06

    FFmpeg version of headers required to interface with Nvidias codec APIs. Corresponds to Video Codec ...

  3. web@h,c小总结

    问题0:元素内联元素,行内元素,行内块元素.        内联: 宽高M,P都有效        行内元素:无宽高,内容撑开,M,P左右有效        行内块元素:可设宽高,内容撑开,M,P都有 ...

  4. win10安装MarkdownPad 2报错This view has crashed的处理及md简单语法

    # #开头是段落的意思 不带#号是普通内容 # 下划线的写法是两个#号 ## # 列表的写法,以*号开头 * spring * summer * autumn * winter # 以竖线开头 > ...

  5. windows server 2008开启共享文件设置

    之前设置过共享文件,将共享文件映射成磁盘,重新去设置另外服务器的时候,又到网络上找,特此记录 设置网络共享需要开启的服务如下: 以下服务都相关,需要全部开启后才能保证共享正常:1,UPnP Devic ...

  6. FreeSWITCH黑名单功能设置

    功能描述:对呼叫的号码进行过滤 步骤: 1.编译mod_blacklist 模块:进入源目录/usr/local/src/freeswitch  --> make mod_blacklist-i ...

  7. Android PermissionUtils:运行时权限工具类及申请权限的正确姿势

    Android PermissionUtils:运行时权限工具类及申请权限的正确姿势 ifadai 关注 2017.06.16 16:22* 字数 318 阅读 3637评论 1喜欢 6 Permis ...

  8. 使用 Apache 来限制访问 Confluence 6 的管理员界面

    限制特定的 IP 地址可以访问管理员后台 Confluence 的管理员控制台界面对整个应用来说是非常重要的,任何人访问 Confluence 的控制台不仅仅可以访问 Confluence 安装实例, ...

  9. dbcp连接池出现的问题java.lang.AbstractMethodError: com.mysql.jdbc.Connection.isValid(I)Z

    解决方案:mysql-connector 版本为 5.0.4 ,那么对应的 dbcp 和 pool 版本应该为 1.4 和 1.6 .    5.0.4 不应该使用 2.0 及以上版本的 dbcp 和 ...

  10. Django入门基础详解

    本次使用django版本2.1.2 安装django 安装最新版本 pip install django 安装指定版本 pip install django==1.10.1 查看本机django版本 ...