导入android呼叫日志并显示它

导入android呼叫日志并显示它,android,android-contacts,Android,Android Contacts,我已经为android制作了一个联系人应用程序。它具有添加联系人、删除联系人、呼叫和短信的基本功能。现在我想添加一个额外的功能,从手机导入通话记录并显示它。这是我尝试过的编码: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_w

我已经为android制作了一个联系人应用程序。它具有添加联系人、删除联系人、呼叫和短信的基本功能。现在我想添加一个额外的功能,从手机导入通话记录并显示它。这是我尝试过的编码:

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".call_log"
        tools:ignore="ObsoleteLayoutParam" >

        <ScrollView
            android:id="@+id/scroll_view"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent" >

            <TextView
                android:id="@+id/textview_call"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerHorizontal="true"
                android:layout_centerVertical="true" />
        </ScrollView>

    </RelativeLayout>
源代码归功于。 我在call_log.java文件中得到了错误。错误是textview\u调用无法解决或不是字段。
非常感谢您的帮助。

请提供最少的工作量,例如代码示例。我已经尝试了本教程。但是,xml文件的代码不适合我。这学期我刚学了java,对它了解不多。dosnt work不是一个非常精确的说法。编辑您的问题以准确描述您的问题、您尝试了什么以及是否收到任何与问题相关的错误消息。请帮助我不是问题。您需要显示遇到问题的代码,并解释问题是什么,即它正在做什么和应该做什么,包括日志和错误消息(如果有)。好的,只是缺少问题或问题。代码崩溃了吗?它不会编译吗?是否有错误消息?
public class call_log extends Activity {
    TextView textView = null;
    @Override
     protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
      textView = (TextView) findViewById(R.id.textview_call);
      getCallDetails();
     }

     private void getCallDetails() {

          StringBuffer sb = new StringBuffer();
          Cursor managedQuery = managedQuery(CallLog.Calls.CONTENT_URI, null,
            null, null, null);
        Cursor managedCursor = managedQuery;
          int number = managedCursor.getColumnIndex(CallLog.Calls.NUMBER);
          int type = managedCursor.getColumnIndex(CallLog.Calls.TYPE);
          int date = managedCursor.getColumnIndex(CallLog.Calls.DATE);
          int duration = managedCursor.getColumnIndex(CallLog.Calls.DURATION);
          sb.append("Call Log :");
          while (managedCursor.moveToNext()) {
           String phNumber = managedCursor.getString(number);
           String callType = managedCursor.getString(type);
           String callDate = managedCursor.getString(date);
           Date callDayTime = new Date(Long.valueOf(callDate));
           String callDuration = managedCursor.getString(duration);
           String dir = null;
           int dircode = Integer.parseInt(callType);
           switch (dircode) {
           case CallLog.Calls.OUTGOING_TYPE:
            dir = "OUTGOING";
            break;

           case CallLog.Calls.INCOMING_TYPE:
            dir = "INCOMING";
            break;

           case CallLog.Calls.MISSED_TYPE:
            dir = "MISSED";
            break;
           }
           sb.append("\nPhone Number:--- " + phNumber + " \nCall Type:--- "
             + dir + " \nCall Date:--- " + callDayTime
             + " \nCall duration in sec :--- " + callDuration);
           sb.append("\n----------------------------------");
          }
          //managedCursor.close();
          textView.setText(sb);
         }