android手机应用程序操作手机通讯录的联系人

界面配置文件

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:orientation="vertical"

    android:layout_width="fill_parent"

    android:layout_height="fill_parent" >

    <TextView 

        android:id="@+id/text"

        android:textSize="30px"

        android:layout_width="fill_parent"

        android:layout_height="wrap_content"

        android:gravity="center"

        android:text="手机联系人列表"/>

    <ListView 

        android:id="@+id/contactslist"

        android:layout_width="fill_parent"

        android:layout_height="wrap_content"/>

</LinearLayout>

SimpleAdapter的配置文件

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:orientation="horizontal" >

    <TextView

        android:id="@+id/_id"

        android:textSize="30px"

        android:layout_width="240px"

        android:layout_height="wrap_content"/>

<TextView

        android:id="@+id/name"

        android:textSize="30px"

        android:layout_width="240px"

        android:layout_height="wrap_content"/>

</LinearLayout>

Acitivity程序

package com.example.contactproject;

import java.util.ArrayList;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

import android.net.Uri;

import android.os.Bundle;

import android.provider.ContactsContract;

import android.app.Activity;

import android.database.Cursor;

import android.view.ContextMenu;

import android.view.ContextMenu.ContextMenuInfo;

import android.view.Menu;

import android.view.MenuItem;

import android.view.View;

import android.widget.AdapterView;

import android.widget.ListView;

import android.widget.SimpleAdapter;

import android.widget.Toast;

public class MainActivity extends Activity {

private ListView contactslist=null;

private SimpleAdapter simpleadapter=null;

private Cursor result=null;

private List<Map<String, Object>> allContacts=new ArrayList<Map<String,Object>>();

@Override

public boolean onContextItemSelected(MenuItem item) {//选中某个菜单项

AdapterView.AdapterContextMenuInfo info=(AdapterView.AdapterContextMenuInfo)

item.getMenuInfo();//取得菜单项

int position=info.position;//取得操作ID

String contactsId=this.allContacts.get(position).get("_id").toString();//取得数据ID

switch(item.getItemId()){//判断菜单项ID

case Menu.FIRST+1://查询数据

String phoneSelection=ContactsContract.CommonDataKinds.Phone.CONTACT_ID+"=?";//设置查询条件

   String[] phoneSelectionAras=new String[]{contactsId}; //查询参数

   Cursor result=super.getContentResolver().query(

    ContactsContract.CommonDataKinds.Phone.CONTENT_URI,

    null, phoneSelection, phoneSelectionAras, null);//获得查询的手机号码

   StringBuffer buf=new StringBuffer();//用于接受号码

   buf.append("电话号码是:"); 

   for(result.moveToFirst();!result.isAfterLast();result.moveToNext()){//循环取出数据

    buf.append(result.getString(result.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER))+"\\");

   }

   Toast.makeText(this, buf.toString(), Toast.LENGTH_LONG).show();

break;

case Menu.FIRST+2://删除数据 

super.getContentResolver().delete(Uri.withAppendedPath(

ContactsContract.Contacts.CONTENT_URI,

contactsId), 

null, null);//删除指定数据

   this.allContacts.remove(position);//删除数据项

   this.simpleadapter.notifyDataSetChanged();//更新列表项

   Toast.makeText(this, "数据已经删除", Toast.LENGTH_LONG).show();

break;

}

return super.onContextItemSelected(item);

}

@Override

public void onCreateContextMenu(ContextMenu menu, View v,

ContextMenuInfo menuInfo) {//创建上下文菜单

super.onCreateContextMenu(menu, v, menuInfo);

menu.setHeaderTitle("联系人操作");

menu.add(Menu.NONE, Menu.FIRST+1, 1, "查看详情");

menu.add(Menu.NONE, Menu.FIRST+2, 2, "删除联系人");

}

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

super.setContentView(R.layout.activity_main);

this.contactslist=(ListView)super.findViewById(R.id.contactslist);

this.result=super.getContentResolver().query(

ContactsContract.Contacts.CONTENT_URI,

null, null, null, null);

super.startManagingCursor(result);

for(result.moveToFirst();!result.isAfterLast();result.moveToNext()){

Map<String,Object> map=new HashMap<String, Object>();

map.put("_id",result.getInt(result.getColumnIndex(

ContactsContract.Contacts._ID)));

map.put("name", result.getString(result.getColumnIndex(

ContactsContract.Contacts.DISPLAY_NAME)));

this.allContacts.add(map);

}

this.simpleadapter=new SimpleAdapter(

this, this.allContacts,

R.layout.contacts,

new String[]{"_id","name"},

new int[]{R.id._id,R.id.name});

this.contactslist.setAdapter(this.simpleadapter);

this.registerForContextMenu(this.contactslist);

}

@Override

public boolean onCreateOptionsMenu(Menu menu) {

// Inflate the menu; this adds items to the action bar if it is present.

getMenuInflater().inflate(R.menu.main, menu);

return true;

}

}

权限设置

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

    package="com.example.contactproject"

    android:versionCode="1"

    android:versionName="1.0" >

    <uses-sdk

        android:minSdkVersion="10"

        android:targetSdkVersion="10" />

    <application

        android:allowBackup="true"

        android:icon="@drawable/ic_launcher"

        android:label="@string/app_name"

        android:theme="@style/AppTheme" >

        <activity

            android:name="com.example.contactproject.MainActivity"

            android:label="@string/app_name" >

            <intent-filter>

                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />

            </intent-filter>

        </activity>

    </application>

    <uses-permission android:name="android.permission.READ_CONTACTS"/>

     <uses-permission android:name="android.permission.WRITE_CONTACTS"/>

</manifest>

转载于:https://my.oschina.net/liyuanjinglyj/blog/145377

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值