<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context="lpc.com.project722.MainActivity"><ListViewandroid:layout_width="match_parent"android:layout_height="match_parent"android:id="@+id/list" /></RelativeLayout>
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical" android:layout_width="match_parent"android:layout_height="match_parent"><TextViewandroid:id="@+id/name"android:text="我是一个名字"android:layout_width="match_parent"android:layout_height="wrap_content" /><TextViewandroid:id="@+id/number"android:text="我是一个号码"android:layout_width="match_parent"android:layout_height="wrap_content" /></LinearLayout>
package lpc.com.project722;import android.content.Context;import android.database.Cursor;import android.os.Bundle;import android.provider.ContactsContract;import android.support.v7.app.AppCompatActivity;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.AdapterView;import android.widget.BaseAdapter;import android.widget.ListView;import android.widget.TextView;import android.widget.Toast;import java.util.ArrayList;public class MainActivity extends AppCompatActivity {private ArrayList<String> nameList = new ArrayList<String>();private ArrayList<String> numberList = new ArrayList<String>();Context mContext = null;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);ListView list = (ListView) findViewById(R.id.list);MyListAdapter Adapter= new MyListAdapter(this);list.setAdapter(Adapter);readData();list.setOnItemClickListener(new AdapterView.OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> parent, View view, int position, long id) {Toast.makeText(MainActivity.this,"你点击的是"+ nameList.get(position),Toast.LENGTH_SHORT).show();}});}private void readData() {Cursor cursor = null;try{cursor = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,null,null,null,null);while (cursor.moveToNext()){String displayName = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));nameList.add(displayName);String number = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));numberList.add(number);}}catch (Exception e){e.printStackTrace();}finally {cursor.close();}}class MyListAdapter extends BaseAdapter {public MyListAdapter(Context context) {mContext = context;}public int getCount() {//设置绘制数量return nameList.size();}public Object getItem(int position) {return position;}public long getItemId(int position) {return position;}public View getView(int position, View convertView, ViewGroup parent) {TextView title = null;TextView text = null;if (convertView == null) {convertView = LayoutInflater.from(mContext).inflate(R.layout.list_item, null);title = (TextView) convertView.findViewById(R.id.name);text = (TextView) convertView.findViewById(R.id.number);}//绘制联系人名称title.setText(nameList.get(position));//绘制联系人号码text.setText(numberList.get(position));return convertView;}}}
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"package="lpc.com.project722"><uses-permission android:name="android.permission.READ_CONTACTS"/><applicationandroid:allowBackup="true"android:icon="@mipmap/ic_launcher"android:label="@string/app_name"android:supportsRtl="true"android:theme="@style/AppTheme"><activity android:name=".MainActivity"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity></application></manifest>
通过系统自带的内容提供器(ContentResolver)读取系统的通讯录,并设置点击事件
原文:http://www.cnblogs.com/liupengcheng/p/5129687.html