出差快两个月了,这段时间一直在做android系统级开发,google的Email,也就是增加手机Email的易用性,增加一些新的功能来满足用户的需求。
之前的blog写过cursor的一些东西,今天作为开始就先写一些cursor查询、更新本地数据库的操作吧。先举个例子:
Cursor c = getContentResolver.query(uri , String[ ] , where , String[ ] , sort)
这条语句相信大家一定经常看到用到,查看sdk帮助文档也很容易找到其中五个参数的意思
第一个参数:是一个URI,指向需要查询的表;
第二个参数:需要查询的列名,是一个数组,可以返回多个列;
第三个参数:需要查询的行,where表示需要满足的查询条件,where语句里面可以有?号;
第四个参数:是一个数组,用来替代上面where语句里面的问号;
第五个参数:表示排序方式;
下面还是用一段代码来加强下印象:
Cursor c = getContentResolver.query(Message.Content_URI ,
new String[]{SyncColumns.Server_Id} , SyncColumns.Id+"=?" , new String[]{Long.toString(MessageId)} , null);
try
{
if(c.moveToFirst())
{
return c.getString(0);//0表示返回的行数
}
else
{
return null;
}
}
finally
{
c.close();
}
下面再来看一段更新数据库的操作
ContentValues cv = new ContentValues();
cv.put(Body.HTML_Content, newHtmlBody);//第一个参数是列名,第二个参数是要放入的值
String where = Body.Message_Key + "=" + mMessageId;
getContentResolver().update(uri , cv , where , null);
//这里的四个参数应该很清楚了,uri是表,cv上面要更新的值,where是搜索行的语句,null是历史记录可以为空
好了,明天再来总结下ListPreference的相关操作,这个在软件设置模块很有用。