我的代码是获取联系人的姓名和号码但是总是出错 希望高手帮忙看看
代码
package cn.provider;
import android.app.Activity;
import android.content.ContentResolver;
import android.database.Cursor;
import android.os.Bundle;
import android.provider.ContactsContract;
import android.provider.ContactsContract.PhoneLookup;
import android.widget.TextView;
public class provider extends Activity {
/** Called when the activity is first created. */
private TextView tv;
@Override
public void onCreate(Bundle savedInstanceState) {
String st="";
super.onCreate(savedInstanceState);
tv=(TextView)findViewById(R.id.tv);
setContentView(R.layout.main);
ContentResolver cr=getContentResolver();
Cursor cursor=cr.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
while(cursor.moveToNext())
{
int name=cursor.getColumnIndex(PhoneLookup.DISPLAY_NAME);
String con=cursor.getString(name);
System.out.print(con);
String cont=cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));
Cursor phone=cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,ContactsContract.CommonDataKinds.Phone.CONTACT_ID+"="+cont,null, null);
while(phone.moveToNext())
{
int number=phone.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER);
String num=phone.getString(number);
st+=con+":"+num+"\n";
}
}
cursor.close();
tv.setText(st);
}
}
manifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="cn.provider"
android:versionCode="1"
android:versionName="1.0">
<uses-permission
android:name="android.permission.READ_CONTACTS">
</uses-permission>
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".provider"
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>
</manifest>
layout.xml
<?xml version="1.0" encoding="utf-8"?>
<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:text="TextView"
android:id="@+id/tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</TextView>
</LinearLayout>
代码
package cn.provider;
import android.app.Activity;
import android.content.ContentResolver;
import android.database.Cursor;
import android.os.Bundle;
import android.provider.ContactsContract;
import android.provider.ContactsContract.PhoneLookup;
import android.widget.TextView;
public class provider extends Activity {
/** Called when the activity is first created. */
private TextView tv;
@Override
public void onCreate(Bundle savedInstanceState) {
String st="";
super.onCreate(savedInstanceState);
tv=(TextView)findViewById(R.id.tv);
setContentView(R.layout.main);
ContentResolver cr=getContentResolver();
Cursor cursor=cr.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
while(cursor.moveToNext())
{
int name=cursor.getColumnIndex(PhoneLookup.DISPLAY_NAME);
String con=cursor.getString(name);
System.out.print(con);
String cont=cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));
Cursor phone=cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,ContactsContract.CommonDataKinds.Phone.CONTACT_ID+"="+cont,null, null);
while(phone.moveToNext())
{
int number=phone.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER);
String num=phone.getString(number);
st+=con+":"+num+"\n";
}
}
cursor.close();
tv.setText(st);
}
}
manifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="cn.provider"
android:versionCode="1"
android:versionName="1.0">
<uses-permission
android:name="android.permission.READ_CONTACTS">
</uses-permission>
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".provider"
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>
</manifest>
layout.xml
<?xml version="1.0" encoding="utf-8"?>
<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:text="TextView"
android:id="@+id/tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</TextView>
</LinearLayout>