当前位置: 首页 > news >正文

湘潭学校网站建设 磐石网络湘潭网络推广

湘潭学校网站建设 磐石网络,湘潭网络推广,外包公司不给交社保怎么办,广州网站优化推广1,内容URI 在Android系统中,Content URI是一种用于唯一标识和访问应用程序中的数据的方法。它由Android系统提供,通过Content Provider来实现数据的共享和访问。 Content URI使用特定的格式来标识数据,通常以"content://&qu…

1,内容URI
在Android系统中,Content URI是一种用于唯一标识和访问应用程序中的数据的方法。它由Android系统提供,通过Content Provider来实现数据的共享和访问。

Content URI使用特定的格式来标识数据,通常以"content://"开头,后面跟着由Content Provider定义的数据路径和标识ID。例如,联系人数据的Content URI可能如下所示:

联系人的URI:content://com.android.contacts/contacts
某个联系人的URI:content://com.android.contacts/contacts/1
其中,"com.android.contacts"是联系人的Content Provider的名称,"contacts"是数据表的名称,"1"是联系人的ID。

注意:Content URI由2个部分组成,authority和path。authority是用于对不同应用程序做区分,一般采用程序的包名方式来命名,比如com.exemple.app。path则用于同一应用程序不同的表做区分。比如/table1,/table2.

在Android中,将内容URI解析为URI对象非常简单。可以使用Uri类的静态方法parse()来解析内容URI字符串,并将其转换为Uri对象。

以下是将内容URI解析为URI对象的示例代码:

String contentUriString = "content://com.example.app/data";  
Uri uri = Uri.parse(contentUriString);

在上面的代码中,我们定义了一个内容URI字符串"content://com.example.app/data",然后使用Uri.parse()方法将其解析为Uri对象。解析后的Uri对象可以用于后续的ContentResolver操作,如查询、插入、更新等。

需要注意的是,解析后的Uri对象是不可变的,即无法对其进行修改。如果需要更改URI,可以创建一个新的Uri对象或使用Uri.Builder类来构建一个新的URI。同时,也需要注意在使用Content Provider时需要遵循相应的权限和安全机制,以确保数据的安全性和隐私性。

总之,将内容URI解析为URI对象是Android开发中常见的操作之一,它可以帮助我们更好地访问和操作应用程序中的数据

2,ContentResolver的基本用法

ContentResolver是Android中用于访问各种内容提供者(Content Provider)的接口。内容提供者是一种共享应用程序数据的机制,它允许一个应用程序访问和操作其他应用程序的数据。实现跨进程共享数据。

以下是ContentResolver的基本用法:

1,获取ContentResolver对象:

ContentResolver contentResolver = getContentResolver();

2,使用ContentResolver查询数据:

Cursor cursor = contentResolver.query(uri, projection, selection, selectionArgs, sortOrder);
* `uri`:要查询的数据的URI。  
* `projection`:要检索的列的名称。可以指定一个包含列名的数组。如果该值为null,则会返回所有列。  
* `selection`:SQL查询语句的一部分,用于指定要检索的行。通常使用“?”占位符来避免SQL注入攻击。  
* `selectionArgs`:SQL查询语句中的占位符的值。这是一个字符串数组,可以为每个占位符提供一个值。  
* `sortOrder`:用于对结果进行排序的SQL查询语句。可以指定一个字符串,例如"name ASC"。如果不指定,则结果将按默认顺序返回。

3,处理查询结果:

* 使用`moveToFirst()`方法将光标移动到结果集的第一个条目。  
* 使用`getCount()`方法获取结果集中的条目数。  
* 使用`getString(columnIndex)`、`getInt(columnIndex)`等方法获取特定列的值。

4,关闭Cursor对象:

cursor.close();

在使用完Cursor对象后,应始终关闭它以释放相关资源。

除了查询数据,ContentResolver还可以用于插入、更新和删除数据。这些操作通常使用ContentValues对象来传递数据,并使用Uri对象指定要操作的URI。例如:

插入数据:

Uri uri = contentResolver.insert(uri, contentValues);

更新数据:

int rowsUpdated = contentResolver.update(uri, contentValues, selection, selectionArgs);

删除数据:

int rowsDeleted = contentResolver.delete(uri, selection, selectionArgs);

在Android中,ContentResolver是一个接口,它提供了访问和操作内容提供者(Content Provider)中数据的方法。以下是一个使用ContentResolver的完整参考代码,其中包括查询、插入、更新和删除数据的操作:

// 获取ContentResolver对象  
ContentResolver contentResolver = getActivity().getContentResolver();  // 1. 查询数据  
// 定义URI和查询条件  
Uri uri = Uri.parse("content://com.example.app/data");  
String selection = "name = ?";  
String[] selectionArgs = new String[]{"John"};  // 查询数据  
Cursor cursor = contentResolver.query(uri, null, selection, selectionArgs, null);  // 处理查询结果  
if (cursor != null && cursor.moveToFirst()) {  String name = cursor.getString(cursor.getColumnIndex("name"));  String age = cursor.getString(cursor.getColumnIndex("age"));  // 处理查询结果...  
}  // 关闭Cursor对象  
if (cursor != null) {  cursor.close();  
}  // 2. 插入数据  
// 定义URI和插入数据  
Uri newUri = contentResolver.insert(uri, new ContentValues());  // 处理插入结果  
if (newUri != null) {  // 处理插入结果...  
}  // 3. 更新数据  
// 定义URI和更新条件以及更新数据  
Uri updateUri = Uri.parse("content://com.example.app/data/1");  
ContentValues values = new ContentValues();  
values.put("age", 31);  int rowsUpdated = contentResolver.update(updateUri, values, null, null);  // 处理更新结果  
if (rowsUpdated > 0) {  // 处理更新结果...  
}  // 4. 删除数据  
// 定义URI和删除条件  
Uri deleteUri = Uri.parse("content://com.example.app/data/1");  
int rowsDeleted = contentResolver.delete(deleteUri, null, null);  // 处理删除结果  
if (rowsDeleted > 0) {  // 处理删除结果...  
}

在上面的代码中,我们首先获取了一个ContentResolver对象,然后分别进行了查询、插入、更新和删除数据的操作。需要注意的是,在实际开发中,我们需要根据具体的应用程序和数据结构来定义相应的URI和查询条件,以及处理查询结果、插入结果、更新结果和删除结果的方法。同时,也需要注意在使用Content Provider时需要遵循相应的权限和安全机制。

3,创建内容提供器

在Android中创建内容提供器(Content Provider)的步骤如下:

1,创建一个新的类,继承自ContentProvider类。
2,在AndroidManifest.xml文件中声明内容提供器的权限,以便其他应用程序能够访问数据。
3,在AndroidManifest.xml文件中注册内容提供器,包括指定提供器的名称、权限和数据源等信息。
4,实现ContentProvider类中的抽象方法,包括onCreate()、getType()、insert()、update()、delete()和query()等。
5,在需要访问内容提供器的应用程序中,使用ContentResolver类来获取数据。
需要注意的是,内容提供器的实现需要了解Android系统的内部机制和权限管理等方面的知识,因此需要有一定的开发经验和技术水平。同时,为了确保数据的安全性和隐私性,需要对数据访问进行适当的控制和授权。

以下是一个简单的Android内容提供器的开发代码例子:

首先,创建一个新的类,继承自ContentProvider类,并实现抽象方法:

public class MyContentProvider extends ContentProvider {  private SQLiteDatabase db;  @Override  public boolean onCreate() {  db = SQLiteDatabase.openOrCreateDatabase("mydatabase.db", null);  return true;  }  @Override  public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) {  // 执行查询操作,返回查询结果  return db.query("mytable", projection, selection, selectionArgs, null, null, sortOrder);  }  @Override  public String getType(Uri uri) {  // 返回数据类型  return "vnd.android.cursor.dir/mydata";  }  @Override  public Uri insert(Uri uri, ContentValues values) {  // 执行插入操作,返回插入数据的URI  long rowId = db.insert("mytable", null, values);  return Uri.parse("content://com.example.app.provider/" + rowId);  }  @Override  public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) {  // 执行更新操作,返回更新记录的数量  return db.update("mytable", values, selection, selectionArgs);  }  @Override  public int delete(Uri uri, String selection, String[] selectionArgs) {  // 执行删除操作,返回删除记录的数量  return db.delete("mytable", selection, selectionArgs);  }  
}

然后,在AndroidManifest.xml文件中声明内容提供器的权限和注册信息:

<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.app">  <application>  <provider android:name=".MyContentProvider" android:authorities="com.example.app.provider" />  </application>  
</manifest>

最后,在需要访问内容提供器的应用程序中,使用ContentResolver类来获取数据:

ContentResolver contentResolver = getActivity().getContentResolver();  
Cursor cursor = contentResolver.query(Uri.parse("content://com.example.app.provider/mytable"), null, null, null, null);  
if (cursor != null && cursor.moveToFirst()) {  String name = cursor.getString(cursor.getColumnIndex("name"));  String age = cursor.getString(cursor.getColumnIndex("age"));  // 处理查询结果...  
}  
cursor.close();

注意:getType方法用于获取uri对象所对应的mime类型。一个内容uri对应的MIME类型由3个部分组成:
1,必须以vnd开头。
2,如果内容uri以路径结尾,则后面接android.cursor.dir/,如果内容uri以id结尾,则后面接vendor.cursor.item/
3,最后接上vnd..
比如,对应content://com.example.app.provider/mytable这个内容uri,对应的MIME类型写成:vnd.android.cursor.dir/mydata

http://www.15wanjia.com/news/47524.html

相关文章:

  • 企业绿色发展助力重庆seo排名软件
  • 百度云盘做网站奉化首页的关键词优化
  • 宁波公司有哪些seo基础入门视频教程
  • 做视频点播网站网址百度刷排名
  • 三级网站做爰苹果cms永久免费建站程序
  • 西安政府网站开发公司厦门人才网官网招聘信息网
  • 开一个建筑模板厂需要多少钱互联网优化
  • 怎样做阿里巴巴网站深圳营销型网站设计公司
  • 只有一个人网站开发东莞关键字排名优化
  • 重庆网站建设流程友情链接推广
  • pc端自适应网站模板怎么创建个人网站
  • 羽毛球赛事2023赛程合肥seo
  • 长春网站建设开发的有哪些怎么快速推广app
  • 中国建设银行注册网站网络营销这个专业怎么样
  • 专做淘宝的网站网络营销研究背景及意义
  • dw wordpress武汉网络优化知名乐云seo
  • 公司注册核名在哪个网站百度网站客服电话
  • 做外贸 访问国外网站 怎么办关键词搜索爱站网
  • 本地建设网站企业软文
  • wordpress如何修改html代码seo指的是
  • 现在大家做电商网站用什么源码seo优化的作用
  • 南京建站方案淘宝推广平台
  • 独立b2c网站有哪些如何在百度发布广告
  • 张家口市建设局网站百度文库个人登录
  • 做二手车广告推广哪家网站好新网店怎么免费推广
  • 建立网站对吗在哪买网站链接
  • 中卫市住房建设局网站关键词研究工具
  • app下载量查询惠州seo关键字优化
  • 怎样用虚拟主机建网站惠州搜索引擎seo
  • 信阳网站建设策划方案卖链接的网站