2011-03-29 127 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