Android通讯录联系人的读取、更新、插入、删除等方法

本文介绍了如何在Android平台上进行通讯录的读取、更新、插入和删除操作,通过TestContacts.java这个示例代码详细讲解了相关的方法和步骤。
摘要由CSDN通过智能技术生成

TestContacts.java:

    package waga.android.study.TestContacts;
    import android.app.Activity;
    import android.content.ContentResolver;
    import android.content.Intent;
    import android.database.Cursor;
    import android.os.Bundle;
    import android.provider.ContactsContract;
    import android.provider.ContactsContract.RawContacts;
    import android.view.Menu;
    import android.view.MenuInflater;
    import android.view.MenuItem;
    import android.widget.TextView;
    public class TestContacts extends Activity
    {
    TextView myTextView;
    String str;
        @Override
        public void onCreate(Bundle savedInstanceState)
        {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            setTitle(R.string.ReadContact);
        }
       
        // 创建选项菜单
        @Override
        public boolean onCreateOptionsMenu(Menu menu)
        {
         super.onCreateOptionsMenu(menu);
      MenuInflater inflater = getMenuInflater();
      inflater.inflate(R.layout.menu, menu);
      
      return true;
    }
        // 响应选项菜单
    @Override
    public boolean onOptionsItemSelected(MenuItem item)
    {
      switch (item.getItemId())
      {
       // 新建联系人
             case R.id.menu_add:
             {
              // new一 个Intent对 象 , 并指定class
              Intent intent = new Intent();
              intent.setClass(this, NewContactActivity.class);
              startActivity(intent);
              return true;
       }
             
             // 删除联系人
             case R.id.menu_delete:
             {
              // new一 个Intent对 象 , 并指定class
              Intent intent = new Intent();
              intent.setClass(this, DeleteContactActivity.class);
              startActivity(intent);
              return true;
       }
             
             // 更新联系人
             case R.id.menu_update:
             {
              // new一 个Intent对 象 , 并指定class
              Intent intent = new Intent();
              intent.setClass(this, UpdateContactActivity.class);
              startActivity(intent);
              return true;
       }
             
             // 退出
             case R.id.menu_exit:
             {
              finish();
              return true;
             }
      }
      return false;
    }
    @Override
    protected void onResume()
    {
      super.onResume();
      TextView myTextView = (TextView)findViewById(R.id.ContactsInfo);
            str = "";
            
      // 读取所有的联系人
            readAllContacts();
            
            myTextView.setText(str);
    }
    // 读取所有的联系人
        public void readAllContacts()
        {
         ContentResolver cr = getContentResolver();
         Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
            if (cur.getCount() > 0)
            {
             while (cur.moveToNext())
             {
              String rawContactsId = "";
                 String id = cur.getString(cur.getColumnIndex(ContactsContract.Contacts._ID));
              String name = cur.getString(cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
              str += "ContactID:" + id + "\n";
              // 读取rawContactsId
              Cursor rawContactsIdCur = cr.query(RawContacts.CONTENT_URI,
             null,
             RawContacts.CONTACT_ID +" = ?",  
             new String[]{id}, null);
             
              if (rawContactsIdCur.moveToFirst())
              {
               rawContactsId = rawContactsIdCur.getString(rawContactsIdCur.getColumnIndex(RawContacts._ID));
               str += "RawContactsID:" + rawContactsId + "\n";
              }
              rawContactsIdCur.close();
             
              str += "姓名:" + name + "\n";
             
             
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值