A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© mengxiang1993 中级黑马   /  2015-3-29 21:27  /  1683 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 mengxiang1993 于 2015-3-29 22:20 编辑

在张泽华老师的安卓基础视频第47讲,保存联系人到系统通讯录
我的代码如下:
  1. package com.example.writeContect;

  2. import android.app.Activity;
  3. import android.app.ActionBar;
  4. import android.app.Fragment;
  5. import android.content.ContentResolver;
  6. import android.content.ContentValues;
  7. import android.database.Cursor;
  8. import android.net.Uri;
  9. import android.os.Bundle;
  10. import android.view.LayoutInflater;
  11. import android.view.Menu;
  12. import android.view.MenuItem;
  13. import android.view.View;
  14. import android.view.ViewGroup;
  15. import android.widget.Toast;
  16. import android.os.Build;

  17. /**
  18. * 需求:向系统通讯录添加一个联系人
  19. * 步骤:
  20. * 1.向raw_contacts表添加一个id
  21. * 2.通过查询raw_contacts表获取_id的值,然后_id+1插入到raw_contacts表
  22. * 3.向data表添加data1的内容和mimetype类型
  23. *
  24. */
  25. public class MainActivity extends Activity {

  26.         
  27.         protected void onCreate(Bundle savedInstanceState) {
  28.                 super.onCreate(savedInstanceState);
  29.                 setContentView(R.layout.fragment_main);


  30.         }
  31.         
  32.         public void click(View view){
  33.                 ContentResolver resolver=getContentResolver();
  34.                 Uri uri=Uri.parse("content://com.android.contacts/raw_contacts");
  35.                 Uri dataUri=Uri.parse("content://com.android.contacts/data");
  36.                
  37.                 Cursor cursor=resolver.query(uri, new String[]{"_id"}, null, null, null);
  38.                
  39.                 cursor.moveToLast();
  40.                
  41.                
  42.                 int _id=cursor.getInt(0);
  43.                 ContentValues values=new ContentValues();
  44.                 values.put("contact_id", _id+1);
  45.                 resolver.insert(uri, values);
  46.                
  47.                 Toast.makeText(this, "保存成功", 0).show();
  48.                
  49.                
  50.                 Cursor cursor2=resolver.query(dataUri,null, null, null, null);
  51.                 ContentValues telValues=new ContentValues();
  52.                 telValues.put("data1", "110");
  53.                 telValues.put("mimetype","vnd.android.cursor.item/phone_v2");        
  54.                 resolver.insert(dataUri, telValues);
  55.                
  56.                
  57.                 ContentValues telValues2=new ContentValues();
  58.                
  59.                 telValues2.put("data1", "119");
  60.                 telValues2.put("mimetype","vnd.android.cursor.item/phone_v2");        
  61.                 resolver.insert(dataUri, telValues2);
  62.                
  63.                 ContentValues nameValues=new ContentValues();
  64.                 nameValues.put("data1", "wangwu");
  65.                 nameValues.put("mimetype","vnd.android.cursor.item/name");        
  66.                 resolver.insert(dataUri, nameValues);
  67.                
  68.         }

  69. }
复制代码



报这行有错:                telValues.put("mimetype","vnd.android.cursor.item/phone_v2");        
求大神指点:哪里来的空指针,。怎么解决?

6 个回复

倒序浏览
想帮你,但没看到这么远来。。。。根本看不懂
回复 使用道具 举报
还在java视频学习中的路过
回复 使用道具 举报

回帖奖励 +5

我看了,感觉力不从心啊。
回复 使用道具 举报
我看了 感觉老多看不懂 唉 !!学艺不精啊 !!!膜拜
回复 使用道具 举报
看完了,没懂,学JAVASE中
回复 使用道具 举报
没看懂。。楼主看的好多
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马