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

网站制作上网企业网站页面

网站制作上网,企业网站页面,学校网站建设情况介绍,百度怎么自己做网站吗例如以下内容为从网络转载#xff1a;使用ContentProvider共享数据#xff1a;当应用继承ContentProvider类#xff0c;并重写该类用于提供数据和存储数据的方法#xff0c;就能够向其它应用共享其数据。虽然使用其它方法也能够对外共享数据#xff0c;但数据訪问方式会因…   例如以下内容为从网络转载 使用ContentProvider共享数据 当应用继承ContentProvider类并重写该类用于提供数据和存储数据的方法就能够向其它应用共享其数据。虽然使用其它方法也能够对外共享数据但数据訪问方式会因数据存储的方式而不同如採用文件方式对外共享数据须要进行文件操作读写数据採用sharedpreferences共享数据须要使用sharedpreferences API读写数据。而使用ContentProvider共享数据的优点是统一了数据訪问方式。 当应用须要通过ContentProvider对外共享数据时第一步须要继承ContentProvider并重写以下方法 public class PersonContentProvider extends ContentProvider{    public boolean onCreate()    public Uri insert(Uri uri, ContentValues values)    public int delete(Uri uri, String selection, String[] selectionArgs)    public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs)    public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder)    public String getType(Uri uri)} 第二步须要在AndroidManifest.xml使用provider对该ContentProvider进行配置为了能让其它应用找到该ContentProvider ContentProvider 採用了authorities主机名/域名对它进行唯一标识你能够把 ContentProvider看作是一个站点想想站点也是提供数据者authorities 就是他的域名 manifest ....     application android:icondrawable/icon android:labelstring/app_name         provider android:name.PersonContentProvider android:authoritiescn.itcast.provider.personprovider/     /application /manifest 注意一旦应用继承了ContentProvider类后面我们就会把这个应用称为ContentProvider内容提供者。 l     Uri介绍 Uri代表了要操作的数据Uri主要包括了两部分信息1》须要操作的ContentProvider 2》对ContentProvider中的什么数据进行操作一个Uri由下面几部分组成 l ContentProvider内容提供者的scheme已经由Android所规定 scheme为content:// 主机名或叫Authority用于唯一标识这个ContentProvider外部调用者能够依据这个标识来找到它。 路径path能够用来表示我们要操作的数据路径的构建应依据业务而定例如以下: 要操作person表中id为10的记录能够构建这种路径:/person/10 要操作person表中id为10的记录的name字段person/10/name 要操作person表中的全部记录能够构建这种路径:/person 要操作xxx表中的记录能够构建这种路径:/xxx 当然要操作的数据不一定来自数据库也能够是文件等他存储方式例如以下: 要操作xml文件里person节点下的name节点能够构建这种路径/person/name 假设要把一个字符串转换成Uri能够使用Uri类中的parse()方法例如以下 Uri uri Uri.parse(content://cn.itcast.provider.personprovider/person) lUriMatcher类使用介绍 由于Uri代表了要操作的数据所以我们非常常常须要解析Uri并从Uri中获取数据。Android系统提供了两个用于操作Uri的工具类分别为UriMatcher 和ContentUris 。掌握它们的使用会便于我们的开发工作。 UriMatcher类用于匹配Uri它的使用方法例如以下 首先第一步把你须要匹配Uri路径所有给注冊上例如以下 //常量UriMatcher.NO_MATCH表示不匹配不论什么路径的返回码 UriMatcher  sMatcher new UriMatcher(UriMatcher.NO_MATCH); //假设match()方法匹配content://cn.itcast.provider.personprovider/person路径返回匹配码为1 sMatcher.addURI(“cn.itcast.provider.personprovider”, “person”, 1);//加入须要匹配uri假设匹配就会返回匹配码 //假设match()方法匹配content://cn.itcast.provider.personprovider/person/230路径返回匹配码为2 sMatcher.addURI(“cn.itcast.provider.personprovider”, “person/#”, 2);//#号为通配符 switch (sMatcher.match(Uri.parse(content://cn.itcast.provider.personprovider/person/10))) {    case 1     break;    case 2     break;    default://不匹配 break; } 注冊完须要匹配的Uri后就能够使用sMatcher.match(uri)方法对输入的Uri进行匹配如果匹配就返回匹配码匹配码是调用addURI()方法传入的第三个參数如果匹配content://cn.itcast.provider.personprovider/person路径返回的匹配码为1 lContentUris类使用介绍 ContentUris类用于获取Uri路径后面的ID部分它有两个比較有用的方法 withAppendedId(uri, id)用于为路径加上ID部分 Uri uri Uri.parse(content://cn.itcast.provider.personprovider/person) Uri resultUri ContentUris.withAppendedId(uri, 10); //生成后的Uri为content://cn.itcast.provider.personprovider/person/10 parseId(uri)方法用于从路径中获取ID部分 Uri uri Uri.parse(content://cn.itcast.provider.personprovider/person/10) long personid ContentUris.parseId(uri);//获取的结果为:10 l使用ContentProvider共享数据 ContentProvider类主要方法的作用 public boolean onCreate() 该方法在ContentProvider创建后就会被调用 Android在系统启动时就会创建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中获取数据。 public String getType(Uri uri) 该方法用于返回当前Url所代表数据的MIME类型。假设操作的数据属于集合类型那么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”。 l使用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的记录 l使用ContentResolver操作ContentProvider中的数据 使用ContentResolver对ContentProvider中的数据进行加入、删除、改动和查询操作 ContentResolver resolver   getContentResolver(); Uri uri Uri.parse(content://cn.itcast.provider.personprovider/person); //加入一条记录 ContentValues values new ContentValues(); values.put(name, itcast); values.put(age, 25); resolver.insert(uri, values); //获取person表中全部记录 Cursor cursor resolver.query(uri, null, null, null, personid desc); while(cursor.moveToNext()){ Log.i(ContentTest, personid cursor.getInt(0) ,name cursor.getString(1)); } //把id为1的记录的name字段值更改新为liming ContentValues updateValues new ContentValues(); updateValues.put(name, liming); Uri updateIdUri ContentUris.withAppendedId(uri, 2); resolver.update(updateIdUri, updateValues, null, null); //删除id为2的记录 Uri deleteIdUri ContentUris.withAppendedId(uri, 2); resolver.delete(deleteIdUri, null, null); public class PersonContentProvider extends ContentProvider{ private DataBaseOpenHelper dataBaseOpenHelper; private static final int ALLPERSON1; private static final int PERSON2; private static final UriMatcher uriMatchernew UriMatcher(UriMatcher.NO_MATCH); static{ uriMatcher.addURI(com.gao.provider.personprovider, person, ALLPERSON); uriMatcher.addURI(com.gao.provider.personprovider, person/#, PERSON); } Override public int delete(Uri uri, String selection, String[] selectionArgs) { SQLiteDatabase databasedataBaseOpenHelper.getWritableDatabase(); int count0; switch (uriMatcher.match(uri)) { case ALLPERSON://content://com.gao.provider.personprovider/person countdatabase.delete(person, selection, selectionArgs); break; case PERSON://content://com.gao.provider.personprovider/person/100 long idContentUris.parseId(uri); String whereTextUtils.isEmpty(selection)?personid?:selectionand personid?; String[] paramsnew String[]{String.valueOf(id)}; if (!TextUtils.isEmpty(selection)selectionArgs!null) { paramsnew String[selectionArgs.length1]; for (int i 0; i selectionArgs.length; i) { params[i]selectionArgs[i]; } params[selectionArgs.length1]String.valueOf(id); } countdatabase.delete(person, where, selectionArgs); break; default: throw new IllegalArgumentException(Unkonw uri:uri); } return count; } Override public String getType(Uri uri) { switch (uriMatcher.match(uri)) { case ALLPERSON: return vnd.android.cursor.dir/personprovider.person; case PERSON: return vnd.android.cursor.item/personprovider.person; default: break; } return null; } Override public Uri insert(Uri uri, ContentValues values) { SQLiteDatabase databasedataBaseOpenHelper.getWritableDatabase(); long id0; switch (uriMatcher.match(uri)) { case ALLPERSON://content://com.gao.provider.personprovider/person iddatabase.insert(person, name, values);//返回记录的行号主键是int实际上就是主键值 return ContentUris.withAppendedId(uri, id); case PERSON://content://com.gao.provider.personprovider/person/100 iddatabase.insert(person, name, values); String pathuri.toString(); return Uri.parse(path.substring(0, path.lastIndexOf(/))id); default: throw new IllegalArgumentException(Unkonw uri:uri); } } Override public boolean onCreate() { dataBaseOpenHelpernew DataBaseOpenHelper(this.getContext()); return false; } Override public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) { SQLiteDatabase databasedataBaseOpenHelper.getReadableDatabase(); switch (uriMatcher.match(uri)) { case ALLPERSON: database.query(person, projection, selection, selectionArgs, null, null, sortOrder); break; case PERSON: long idContentUris.parseId(uri); String whereTextUtils.isEmpty(selection)?personid?:selectionand personid?; String[] paramsnew String[]{String.valueOf(id)}; if (!TextUtils.isEmpty(selection)selectionArgs!null) { paramsnew String[selectionArgs.length1]; for (int i 0; i selectionArgs.length; i) { params[i]selectionArgs[i]; } params[selectionArgs.length1]String.valueOf(id); } database.query(person, projection, where, params, null, null, sortOrder); break; default: break; } return null; } //update(content://com.gao.provider.personprovider/person/100,values,name like ? and ...,new String[]{%gao%}); Override public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) { SQLiteDatabase databasedataBaseOpenHelper.getWritableDatabase(); int count0; switch (uriMatcher.match(uri)) { case ALLPERSON://content://com.gao.provider.personprovider/person countdatabase.update(person, values, selection,selectionArgs); break; case PERSON://content://com.gao.provider.personprovider/person/100 long idContentUris.parseId(uri); String whereTextUtils.isEmpty(selection)?personid?:selectionand personid?; String[] paramsnew String[]{String.valueOf(id)}; if (!TextUtils.isEmpty(selection)selectionArgs!null) { paramsnew String[selectionArgs.length1]; for (int i 0; i selectionArgs.length; i) { params[i]selectionArgs[i]; } params[selectionArgs.length1]String.valueOf(id); } countdatabase.update(person, values, where,params); break; default: throw new IllegalArgumentException(Unkonw uri:uri); } return count; } }   AndroidManifest.xml provider android:namePersonContentProvider android:authoritiescom.gao.provider.personprovider / 在还有一个程序ContentProviderUser中使用上面的内容提供者 public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); ContentResolver contentResolverthis.getContentResolver(); Uri allUriUri.parse(content://com.gao.provider.personprovider/person); ContentValues valuesnew ContentValues(); values.put(name, GGGGG); values.put(age, 19); contentResolver.insert(uri, values); values.put(name, CCCCCC); values.put(age, 100); Uri uriUri.parse(content://com.gao.provider.personprovider/person/9); // contentResolver.update(uri, values, null, null); //contentResolver.delete(uri, null, null); Cursor cursorcontentResolver.query(uri, new String[]{personid,name,age}, null, null, personid desc); while (cursor.moveToNext()) { Log.i(TAG, psrsonid:cursor.getInt(0),name:cursor.getString(1),agecursor.getInt(2)); } cursor.close(); }    转载于:https://www.cnblogs.com/blfshiye/p/4076025.html
http://www.yutouwan.com/news/334092/

相关文章:

  • 建设网站的一般过程网站备份信息
  • 做ppt常用的网站有哪些重庆奉节网站建设
  • 镇江网站建设优化案例分析广州的服装网站建设
  • 长沙有什么做试卷的网站渐江建工水利水电建设有限公司网站
  • 免费的黄冈网站有哪些学习前端的网站
  • 怎么做外贸个人网站dede网站 设置404 错误页面
  • 行政单位建设网站方案网络培训课堂app
  • 杭州市萧山区建设局网站深圳网站建设公司招聘
  • 网站做付款页面百度竞价排名规则及费用
  • 专门做母婴的网站杭州十大广告公司
  • 响应式做的比较好的网站百度公司招聘信息
  • 网站返回指定位置怎么做广州网站制作哪家强
  • 网站备案年限查询青海 网站开发 图灵
  • 网站开发费税率是多少4.8 wordpress 插件
  • 大学生个人网站怎么做内容营销包括哪些内容
  • 网站页面链接怎么做的用笔记本电脑能建设网站吗
  • 安徽和住房建设厅网站重庆森林经典台词罐头
  • 公司网站建设精英企业建设网站的主要作用
  • 注册网站后邮箱收到邮件购买网站服务器
  • 淘宝客 网站 建站wordpress速度好慢
  • 可以免费做调查问卷的网站网站上面的内容里面放照片怎么做
  • 广东省建设部网站网站建设及域名申请 厦门
  • 汕头网站制作专业哈尔滨市做网站公司
  • 北京高端网站建设公司wordpress熊掌号出图
  • 工作室网站开发专业做微视频的网站
  • 苏州网站建设名字程序员外包接单
  • 大连做网站那个公司最好本地生活服务小程序
  • 杭州做代发的网站有哪些手机网站建设+上海
  • 职业学校网站模板网络营销策略研究论文
  • 建设部网站资质公示建筑工地常用模板种类