如何避免在android中重复调用历史记录详细信息

时间:2013-05-31 12:38:19

标签: android calllog

您正在从内容提供商处获取呼叫日志详细信息它正常工作但输出显示重复的呼叫详细信息以及如何避免呼叫日志中的重复。

当前输出如

id名称编号时间

1 abc 1233 2.30 pm

2 bdc 2897 1.pm

3 abc 1233 11.30 am

4 abc 1233 11.00 am

但我不希望这个输出我需要像

id名称编号时间

1 abc(3)1233 2.30 pm

2 bdc 2897 1.00 pm

如何实现这一点,看看我的代码并帮助我

public void readCallLogs(){

    Cursor callLog = getActivity().getContentResolver().query(
            CallLog.Calls.CONTENT_URI, null, null, null,
            android.provider.CallLog.Calls.DATE + " DESC");

    int cid = callLog.getColumnIndex(CallLog.Calls._ID);

    int cName = callLog.getColumnIndex(CallLog.Calls.CACHED_NAME);

    int cNumber = callLog.getColumnIndex(CallLog.Calls.NUMBER);

    int cType = callLog.getColumnIndex(CallLog.Calls.TYPE);

    int cDate = callLog.getColumnIndex(CallLog.Calls.DATE);

    int cDuration = callLog.getColumnIndex(CallLog.Calls.DURATION);

    // looping call log cursor object
    while (callLog.moveToNext()) {

        String mId = callLog.getString(cid);

        String mName = callLog.getString(cName);
        String mNumber = callLog.getString(cNumber);

        long mCallDate = callLog.getLong(cDate);

}

1 个答案:

答案 0 :(得分:-1)

我认为这是显示的问题.... 因此,一旦收到数据,您需要应用过滤器,或者您需要编写自己的代码来对数据进行分组。

注意:在选择数据结构(数组,地图)时需要小心。这可以达到性能。