0

こんにちは、コンテンツプロバイダーから通話ログの詳細を取得していますが、正常に動作していますが、出力には重複した通話の詳細が表示され、通話ログの重複を回避する方法も表示されます。

現在の出力のような

ID 名前 番号 時間

1 abc 1233 午後 2 時 30 分

2 bdc 2897 午後 1 時

3 abc 1233 午前 11 時 30 分

4 abc 1233 午前 11 時

しかし、私はこの出力が必要ではありません

ID 名前 番号 時間

1 abc (3) 1233 午後 2 時 30 分

2 bdc 2897 午後 1 時

これを達成する方法私のコードを見て、私を助けてください

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);

}

4

1 に答える 1

-1

これは表示の問題だと思います....したがって、データを受け取ったら、フィルターを適用するか、独自のコードを記述してデータをグループ化する必要があります。

注: データ構造 (配列、マップ) を選択するときは注意が必要です。これはパフォーマンスに影響を与える可能性があります。

于 2013-07-30T08:47:28.163 に答える