android getContentResolver返回值的问题

问题描述

android getContentResolver返回值的问题

最近学了下面的代码,运行时报错数组越界,检查发现newUriList为空,再进一步检查发现是因为getContentResolver.insert的返回值newUri的权限,路径以及id之间没有“/",求大神解释这怎么解决,谢谢

            ![图片说明](http://img.ask.csdn.net/upload/201502/25/1424845714_34467.jpg)
            ![图片说明](http://img.ask.csdn.net/upload/201502/25/1424845776_174148.jpg)
            ![![![](http://img.ask.csdn.net/upload/201502/25/1424845714_34467.jpg)](http://img.ask.csdn.net/upload/201502/25/1424845714_34467.jpg)](http://img.ask.csdn.net/upload/201502/25/1424845714_34467.jpg)

            Uri uri=Uri.parse("content://com.example.databasetest.provider/book");
            ContentValues values=new ContentValues();
            values.put("name", "A clash of kings");
            values.put("author", "Gerorge Martin");
            values.put("pages", 1040);
            values.put("price", 22.85);
            android.net.Uri newUri=getContentResolver().insert(uri, values);
            Log.d("newUriList","newUri is "+newUri.toString());
            List<String> newUriList=newUri.getPathSegments();
            if(newUriList.isEmpty()){
                Log.d("newUriList","newUriList is empty");
            }else{
                Log.d("newUriList","newUriList has "+newUriList.size()+" elements");
                Log.d("newUriList","The first element of newUriList is "+newUriList.get(0));
                Log.d("newUriList","The second element of newUriList is "+newUriList.get(1));
            }
            newId=newUriList.get(1);

解决方案

最后解决了没有,我也遇到了这种情况

解决方案二:

在你自定义的Provider中,把insert操作中的Uri中加上/就可以啦

时间: 2024-09-29 16:38:29

android getContentResolver返回值的问题的相关文章

android activity向dialog返回值?谢谢

问题描述 android activity向dialog返回值?谢谢 dialog转到activity,且activity完成任务后向dialog返回值?谢谢 解决方案 http://www.shangxueba.com/jingyan/1867886.html 解决方案二: Android有返回值的ActivityAndroid Activity调用Dialog后的返回值方法android Dialog给Activity 传参 解决方案三: 使用接口回调吧...

android-Android FindFragmentById 返回值总是null

问题描述 Android FindFragmentById 返回值总是null package com.text.fragmentbestpractice; import java.util.ArrayList; import android.app.Activity; import android.app.Fragment; import android.os.Bundle; import android.util.Log; import android.view.LayoutInflater

android getContentResolver().insert()返回值问题

问题描述 android getContentResolver().insert()返回值问题 insert无返回值 newUri 为null 请问可能的原因有哪些? 解决方案 Android 设置铃声,getContentResolver().insert returns null 看看你是不是也是因为记录不唯一的问题. 你把测试数据写死在代码里面,每次执行的时候都会尝试插入相同的数据,这样就会导致记录不唯一而插入失败.

android 获取上一个activity返回值的方法_Android

activity A和B A 获取数据的activity  B返回数据的activity 点击A上的按钮,在A的textview上显示B中的联系人列表选中的数据 用到baseadapter 1:在主配置文件中声明Bactivity 和 注册通讯录的读写权限 [html] 复制代码 代码如下: <span style="font-size:18px;"> <!-- 注册通讯录的读写权限 -->  <uses-permission android:name=&

android 获取上一个activity返回值的方法

activity A和B A 获取数据的activity  B返回数据的activity 点击A上的按钮,在A的textview上显示B中的联系人列表选中的数据 用到baseadapter 1:在主配置文件中声明Bactivity 和 注册通讯录的读写权限 [html]复制代码 代码如下:<span style="font-size:18px;"> <!-- 注册通讯录的读写权限 -->  <uses-permission android:name=&qu

android 使用 模拟浏览器,无法得到返回值

问题描述 android 使用 模拟浏览器,无法得到返回值 代码如下,根据输入的url地址来返回状态码. 可是,httpconnection.getResponseCode();返回的都是200,没有实际返回访问值. 请高手指点. public String stat_is(String strurl) { HttpURLConnection httpconnection; int rcode=0; String respon = "ok"; httpconnection = null

代码-android调用系统拍照无返回值

问题描述 android调用系统拍照无返回值 我调用照相机拍照的代码是: cameraFile = Uri.fromFile(new File(Environment.getExternalStorageDirectory(), DemoApplication.getInstance().getUserName() + System.currentTimeMillis() + ".jpg")); cameraFileString = cameraFile.getPath().toStr

Android单元测试 - 验证函数参数、返回值的正确姿势

前言 读者有没发觉我写文章时,喜欢有个前言.序?真相是,一半用来装逼凑字数,一半是因为不知道接下来要写什么,先闲聊几句压压惊^_^ 哈哈哈......该说的还是要说. 上一篇<Android单元测试 - Sqlite.SharedPreference.Assets.文件操作 怎么测?> 讲了一些DAO(Data Access Object)单元测试的细节.本篇讲解参数验证. 验证参数传递.函数返回值,是单元测试中十分重要的环节.笔者相信不少读者都有验证过参数,但是你的单元测试代码真的是正确的吗

android 或java函数返回值,应该如何写才对

问题描述 android 或java函数返回值,应该如何写才对 下面是我遇到的问题: 解决方案 你这样肯定不行:你在你的这个方法里面注册来一个检测器来获取你需要的string,其中的onListDepartment()方法应该只会在你的getDepartmentName 方法只会才会调用,所以你的strDepartmentNameText应该时没有更新的.所以,想要得到strDepartmentNameText方法很多呀,比如在onListDepartment()方法直接使用,或者使用handl