欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

找呀志_ContentResolver操作ContentProvider数据

发布时间:2023/12/31 41 豆豆
生活随笔 收集整理的这篇文章主要介绍了 找呀志_ContentResolver操作ContentProvider数据 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

当需要外部的应用ContentProvider该数据被添加、删、修改和查询操作。可以使用ContentResolver 类完成

要得到ContentResolver 物,可以使用Activity提供getContentResolver()办法。

 ContentResolver 类提供了与ContentProvider类同样签名的四个方法:

  • public Uri insert(Uri uri, ContentValues values)该方法用于往ContentProvider加入数据。
  • public int delete(Uri uri, String selection, String[] selectionArgs)该方法用于从ContentProvider删除数据。
  • public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs)该方法用于更新ContentProvider中的数据。

  • public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder)该方法用于从ContentProvider中获取数据。

  • 这些方法的第一个參数为Uri,代表要操作的是哪个ContentProvider和对当中的什么数据进行操作。如果给定的是

    Uri.parse(“content://cn.itcast.provider.personprovider/person/10”)那么将会对主机名为cn.itcast.provider.personprovider的ContentProvider进行操作。操作的数据为person表中id为10的记录。

    使用ContentResolver对ContentProvider中的数据进行加入、删除、改动和查询操作:

  • 创建内容解析器对象 ContentResolver
  • 定义URI
  • 进行增删改查方法
  • 详细事例: 实现:对上一个项目的共享进行查询并在listview中显示 实现效果例如以下:
    MainActivity.java package com.example.android_provider;import android.app.Activity; import android.content.ContentResolver; import android.database.Cursor; import android.net.Uri; import android.os.Bundle; import android.support.v4.widget.CursorAdapter; import android.support.v4.widget.SimpleCursorAdapter; import android.widget.ListView;public class MainActivity extends Activity {private ListView lv_user;// 内容解析器private ContentResolver contentResolver;// 操作的标志private static final String AUTHORITIE = "www.csdn.com.provider.userContentProvider";@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);// 模型层// 创建内容解析器对象contentResolver = getContentResolver();// 控制层Cursor c = contentResolver.query(Uri.parse("content://" + AUTHORITIE + "/query"), new String[] {"userid as _id", "username", "userphone" }, null, null,null);SimpleCursorAdapter adapter = new SimpleCursorAdapter(this,R.layout.list_item_user, c, new String[] { "username","userphone" },new int[] { R.id.tv_name, R.id.tv_phone },CursorAdapter.FLAG_REGISTER_CONTENT_OBSERVER);// 视图层lv_user = (ListView) findViewById(R.id.listView1);lv_user.setAdapter(adapter);}} activity_main.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:paddingBottom="@dimen/activity_vertical_margin"android:paddingLeft="@dimen/activity_horizontal_margin"android:paddingRight="@dimen/activity_horizontal_margin"android:paddingTop="@dimen/activity_vertical_margin"tools:context=".MainActivity" ><ListViewandroid:id="@+id/listView1"android:layout_width="match_parent"android:layout_height="match_parent"android:scrollbarStyle="outsideInset"></ListView></RelativeLayout>

    list_item_user.xml <?xml version="1.0" encoding="utf-8"?

    > <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"     android:layout_width="match_parent"     android:layout_height="match_parent" >     <Button         android:id="@+id/btn_delete"         android:layout_width="30dp"         android:layout_height="30dp"         android:layout_alignParentRight="true"         android:layout_alignParentTop="true"         android:layout_marginTop="5dp"         android:layout_marginLeft="5dp"         android:layout_marginRight="10dp"         android:background="@drawable/del"         android:onClick="delete" />     <Button         android:id="@+id/btn_update"         android:layout_width="30dp"         android:layout_height="30dp"         android:layout_alignParentTop="true"         android:layout_toLeftOf="@+id/btn_delete"         android:onClick="update"        android:layout_margin="5dp"           android:background="@drawable/refresh" />     <TextView         android:id="@+id/tv_name"         android:layout_width="60dp"         android:layout_height="wrap_content"         android:layout_alignBaseline="@+id/btn_update"         android:layout_alignBottom="@+id/btn_update"         android:layout_alignParentLeft="true"         android:paddingLeft="10dp"         android:text="TextView"          />     <TextView         android:id="@+id/tv_phone"         android:layout_width="wrap_content"         android:layout_height="wrap_content"         android:layout_alignBaseline="@+id/tv_name"         android:layout_toRightOf="@+id/tv_name"         android:paddingLeft="10dp"         android:text="TextView" /> </RelativeLayout>



    版权声明:本文博主原创文章。博客,未经同意不得转载。

    总结

    以上是生活随笔为你收集整理的找呀志_ContentResolver操作ContentProvider数据的全部内容,希望文章能够帮你解决所遇到的问题。

    如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。