public class ListViewActivity extends Activity {
LinearLayout myLinearLayout;
ListView myListView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
myLinearLayout = new LinearLayout(this);
myListView = new ListView(this);
myLinearLayout.setOrientation(LinearLayout.VERTICAL);
LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
myLinearLayout.addView(myListView, param);
setContentView(myLinearLayout);
Cursor cur = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
startManagingCursor(cur);
ListAdapter adapter = new SimpleCursorAdapter(this, android.R.layout.simple_list_item_2, cur, new String[] {
PhoneLookup.DISPLAY_NAME, PhoneLookup.NUMBER},new int[] {
android.R.id.text1, android.R.id.text2});
myListView.setAdapter(adapter);
myListView.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
DisplayToast("滚动到第" + Long.toString(arg0.getSelectedItemId()) + "项");
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
//没有选中
}
});
myListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
DisplayToast("选中了第" + Integer.toString(arg2+1) + "项");
}
});
}
public void DisplayToast(String str) {
Toast.makeText(this, str, Toast.LENGTH_SHORT).show();
}
}
logcat提示 Cursor cur = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);出错了,程序无法启动,求教高手
09-16 21:17:26.296: ERROR/AndroidRuntime(1396): FATAL EXCEPTION: main
09-16 21:17:26.296: ERROR/AndroidRuntime(1396): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.lee.android/com.lee.android.ListViewActivity}: java.lang.SecurityException: Permission Denial: reading com.android.providers.contacts.ContactsProvider2 uri content://com.android.contacts/contacts from pid=1396, uid=10000 requires android.permission.READ_CONTACTS
09-16 21:17:26.296: ERROR/AndroidRuntime(1396): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1664)
09-16 21:17:26.296: ERROR/AndroidRuntime(1396): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1680)
09-16 21:17:26.296: ERROR/AndroidRuntime(1396): at android.app.ActivityThread.access$1500(ActivityThread.java:117)
09-16 21:17:26.296: ERROR/AndroidRuntime(1396): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
09-16 21:17:26.296: ERROR/AndroidRuntime(1396): at android.os.Handler.dispatchMessage(Handler.java:99)
09-16 21:17:26.296: ERROR/AndroidRuntime(1396): at android.os.Looper.loop(Looper.java:130)
09-16 21:17:26.296: ERROR/AndroidRuntime(1396): at android.app.ActivityThread.main(ActivityThread.java:3703)
09-16 21:17:26.296: ERROR/AndroidRuntime(1396): at java.lang.reflect.Method.invokeNative(Native Method)
09-16 21:17:26.296: ERROR/AndroidRuntime(1396): at java.lang.reflect.Method.invoke(Method.java:507)
09-16 21:17:26.296: ERROR/AndroidRuntime(1396): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841)
09-16 21:17:26.296: ERROR/AndroidRuntime(1396): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599)
09-16 21:17:26.296: ERROR/AndroidRuntime(1396): at dalvik.system.NativeStart.main(Native Method)
09-16 21:17:26.296: ERROR/AndroidRuntime(1396): Caused by: java.lang.SecurityException: Permission Denial: reading com.android.providers.contacts.ContactsProvider2 uri content://com.android.contacts/contacts from pid=1396, uid=10000 requires android.permission.READ_CONTACTS
09-16 21:17:26.296: ERROR/AndroidRuntime(1396): at android.os.Parcel.readException(Parcel.java:1322)
09-16 21:17:26.296: ERROR/AndroidRuntime(1396): at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:160)
09-16 21:17:26.296: ERROR/AndroidRuntime(1396): at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:114)
09-16 21:17:26.296: ERROR/AndroidRuntime(1396): at android.content.ContentProviderProxy.bulkQueryInternal(ContentProviderNative.java:330)
09-16 21:17:26.296: ERROR/AndroidRuntime(1396): at android.content.ContentProviderProxy.query(ContentProviderNative.java:366)
09-16 21:17:26.296: ERROR/AndroidRuntime(1396): at android.content.ContentResolver.query(ContentResolver.java:262)
09-16 21:17:26.296: ERROR/AndroidRuntime(1396): at com.lee.android.ListViewActivity.onCreate(ListViewActivity.java:29)
09-16 21:17:26.296: ERROR/AndroidRuntime(1396): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
09-16 21:17:26.296: ERROR/AndroidRuntime(1396): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1628)
09-16 21:17:26.296: ERROR/AndroidRuntime(1396): ... 11 more