onItemClick方法最后一个参数应该是long,而不是Long..

解决方案 »

  1.   

    改过来后还是运行不了,报错信息如下:
    10-05 11:35:15.886: D/AndroidRuntime(279): Shutting down VM
    10-05 11:35:15.886: W/dalvikvm(279): threadid=1: thread exiting with uncaught exception (group=0x4001d800)
    10-05 11:35:15.896: E/AndroidRuntime(279): FATAL EXCEPTION: main
    10-05 11:35:15.896: E/AndroidRuntime(279): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.listview/com.example.listview.Activity01}: java.lang.ClassCastException: android.app.ContextImpl$ApplicationContentResolver
    10-05 11:35:15.896: E/AndroidRuntime(279):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
    10-05 11:35:15.896: E/AndroidRuntime(279):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
    10-05 11:35:15.896: E/AndroidRuntime(279):  at android.app.ActivityThread.access$2300(ActivityThread.java:125)
    10-05 11:35:15.896: E/AndroidRuntime(279):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
    10-05 11:35:15.896: E/AndroidRuntime(279):  at android.os.Handler.dispatchMessage(Handler.java:99)
    10-05 11:35:15.896: E/AndroidRuntime(279):  at android.os.Looper.loop(Looper.java:123)
    10-05 11:35:15.896: E/AndroidRuntime(279):  at android.app.ActivityThread.main(ActivityThread.java:4627)
    10-05 11:35:15.896: E/AndroidRuntime(279):  at java.lang.reflect.Method.invokeNative(Native Method)
    10-05 11:35:15.896: E/AndroidRuntime(279):  at java.lang.reflect.Method.invoke(Method.java:521)
    10-05 11:35:15.896: E/AndroidRuntime(279):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
    10-05 11:35:15.896: E/AndroidRuntime(279):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
    10-05 11:35:15.896: E/AndroidRuntime(279):  at dalvik.system.NativeStart.main(Native Method)
    10-05 11:35:15.896: E/AndroidRuntime(279): Caused by: java.lang.ClassCastException: android.app.ContextImpl$ApplicationContentResolver
    10-05 11:35:15.896: E/AndroidRuntime(279):  at com.example.listview.Activity01.onCreate(Activity01.java:85)
    10-05 11:35:15.896: E/AndroidRuntime(279):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
    10-05 11:35:15.896: E/AndroidRuntime(279):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
    10-05 11:35:15.896: E/AndroidRuntime(279):  ... 11 more
      

  2.   

    第85行,参数cur的类型是ContentResolver,你为嘛要把它强转成Cursor
      

  3.   

    源码打包过来,我给你调[email protected]
      

  4.   

    不强转就报错你的 Cursor 对象明明是 cursor, 而不是 cur, 你传错对象了
      

  5.   

    不强转就报错你的 Cursor 对象明明是 cursor, 而不是 cur, 你传错对象了
    我改成cursor也没用
      

  6.   

    那你改成 cursor 之后的情况是怎么样的?有什么错误信息,还是不显示数据
      

  7.   

    10-06 03:30:38.525: D/AndroidRuntime(305): Shutting down VM
    10-06 03:30:38.525: W/dalvikvm(305): threadid=1: thread exiting with uncaught exception (group=0x4001d800)
    10-06 03:30:38.535: E/AndroidRuntime(305): FATAL EXCEPTION: main
    10-06 03:30:38.535: E/AndroidRuntime(305): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.listview/com.example.listview.Activity01}: java.lang.IllegalArgumentException: column 'Xiaogang ' does not exist
    10-06 03:30:38.535: E/AndroidRuntime(305):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
    10-06 03:30:38.535: E/AndroidRuntime(305):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
    10-06 03:30:38.535: E/AndroidRuntime(305):  at android.app.ActivityThread.access$2300(ActivityThread.java:125)
    10-06 03:30:38.535: E/AndroidRuntime(305):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
    10-06 03:30:38.535: E/AndroidRuntime(305):  at android.os.Handler.dispatchMessage(Handler.java:99)
    10-06 03:30:38.535: E/AndroidRuntime(305):  at android.os.Looper.loop(Looper.java:123)
    10-06 03:30:38.535: E/AndroidRuntime(305):  at android.app.ActivityThread.main(ActivityThread.java:4627)
    10-06 03:30:38.535: E/AndroidRuntime(305):  at java.lang.reflect.Method.invokeNative(Native Method)
    10-06 03:30:38.535: E/AndroidRuntime(305):  at java.lang.reflect.Method.invoke(Method.java:521)
    10-06 03:30:38.535: E/AndroidRuntime(305):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
    10-06 03:30:38.535: E/AndroidRuntime(305):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
    10-06 03:30:38.535: E/AndroidRuntime(305):  at dalvik.system.NativeStart.main(Native Method)
    10-06 03:30:38.535: E/AndroidRuntime(305): Caused by: java.lang.IllegalArgumentException: column 'Xiaogang ' does not exist
    10-06 03:30:38.535: E/AndroidRuntime(305):  at android.database.AbstractCursor.getColumnIndexOrThrow(AbstractCursor.java:314)
    10-06 03:30:38.535: E/AndroidRuntime(305):  at android.database.CursorWrapper.getColumnIndexOrThrow(CursorWrapper.java:99)
    10-06 03:30:38.535: E/AndroidRuntime(305):  at android.support.v4.widget.SimpleCursorAdapter.findColumns(SimpleCursorAdapter.java:317)
    10-06 03:30:38.535: E/AndroidRuntime(305):  at android.support.v4.widget.SimpleCursorAdapter.<init>(SimpleCursorAdapter.java:66)
    10-06 03:30:38.535: E/AndroidRuntime(305):  at com.example.listview.Activity01.onCreate(Activity01.java:97)
    10-06 03:30:38.535: E/AndroidRuntime(305):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
    10-06 03:30:38.535: E/AndroidRuntime(305):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
    10-06 03:30:38.535: E/AndroidRuntime(305):  ... 11 more
      

  8.   

    发现原因了,你对 CursorAdapter 的使用方法错误,你是从两个不同的 Cursor 中读取字段,然后再建立 CursorAdpater, 而且建立 Adapter 的时候传入的值为字段值而非字段名 CursorAdapter 需要传入的是一个 Cursor, 及 Cursor 中的字段名,在你这儿对应的字段名就应该是PhoneLookup.DISPLAY_NAME和ContactsContract.Contacts._ID,而你却传入了从两个 Cursor 中获取到得 Cursor 属性值 Xiaogang,但是在你传入的 Cursor 中实际上是无法找到Xiaogang 这个字段名的
      

  9.   

    刚才没有留意你的 id 是通过ContactsContract.CommonDataKinds.Phone.NUMBER,找到得,但是你这个却又是通过另外一个 Cursor 获取到得,因此建议你不要使用 SimpleAdapterCusor, 而是自己将号码,姓名进行一次封装,封装好了之后在自定义一个 Adapter 进行使用
      

  10.   

    代码发我邮箱吧,我改好之后发你, [email protected]