2011-03-29 96 views
0

以下代码显示的通话记录为空。为什么这么说?android通话记录

package fypj.c; 

import java.security.Provider; 
import java.util.ArrayList; 
import android.app.Activity; 
import android.app.ListActivity; 
import android.database.Cursor; 
import android.net.Uri; 
import android.os.Bundle; 
import android.provider.CallLog; 
import android.provider.ContactsContract; 
import android.provider.ContactsContract.Data; 
import android.provider.ContactsContract.CommonDataKinds.Phone; 
import android.widget.ListAdapter; 
import android.widget.ListView; 
import android.widget.SimpleCursorAdapter; 
import android.widget.TextView; 

public class c extends ListActivity { 
    private SimpleCursorAdapter myAdapter; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     String[] column = new String[] {android.provider.CallLog.Calls.CACHED_NAME, android.provider.CallLog.Calls.DURATION, android.provider.CallLog.Calls.TYPE};   
     int[] names = new int[] {R.id.CLName, R.id.CLDuration, R.id.CLType};   
     myAdapter = new SimpleCursorAdapter(this,android.R.layout.simple_list_item_2, cursor, column, names);   
     setListAdapter(myAdapter); 
    } 
} 

<?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" 
    > 
    <ListView 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:id="@android:id/list" 
    /> 
    <TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 

    android:id="@+id/CLName" 
    /> 
    <TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 

    android:id="@+id/CLType" 
    /> 
    <TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 

    android:id="@+id/CLDuration" 
    /> 
</LinearLayout> 
+1

可否请您删除所有的评论,如果他们没有必要? – 2011-03-29 08:11:12

+0

你如何获得“游标”?什么是你的main.xml? – rajath 2011-03-29 08:26:31

+0

我无意中删除了光标上的行 光标cursor = getContentResolver()。query(CallLog.Calls.CONTENT_URI,null,null,null,null); startManagingCursor(光标); – user669046 2011-03-29 08:37:30

回答

0

SimpleCursorAdapter

“这个构造已被弃用。 此选项气馁,因为它会导致应用程序的UI线程上执行光标查询,从而可能会导致反应迟钝甚至出现应用程序无响应错误,或者使用带有CursorLoader的LoaderManager。“

尝试使用可以选择排除代码中的任何问题。

+0

现在查看developer.android中的示例。 会试试,谢谢:) – user669046 2011-03-29 09:36:01

+0

我很确定loadermanager是如何工作的。 他们提到装载机是在Android 3.0中引入的,我使用的是2.2。 – user669046 2011-03-30 01:22:41

+0

现在我的理由R.layout.main而不是有textview但显示的值是117,10,25 其假设显示联系人的名称,类型和持续时间 – user669046 2011-03-30 08:27:54