2

我正在开发 android 项目,我正在尝试从 Android 通话记录中获取号码并将它们显示在列表视图中。

这工作正常,除了一件事,目前如果一个号码已多次调用,那么它会在我的 ListView 中显示多次,我只想显示不同的数字,但我不知道这是如何完成的。

下面是我用来获取数字的代码

String[] callLogFields = {android.provider.CallLog.Calls._ID,
                android.provider.CallLog.Calls.NUMBER,
                android.provider.CallLog.Calls.DATE,
                android.provider.CallLog.Calls.CACHED_NAME};

        String viaOrder = android.provider.CallLog.Calls.DATE + " DESC";
        String where = android.provider.CallLog.Calls.NUMBER + " > 0";

        Cursor callLogCursor = getContentResolver().query(android.provider.CallLog.Calls.CONTENT_URI, 
                callLogFields, where, null, viaOrder);

        ArrayList<Spanned> arrayList = new ArrayList<Spanned>();

        if (callLogCursor.moveToFirst())
        {
            do
            {
                String telephoneNumber = callLogCursor.getString(callLogCursor.getColumnIndex(android.provider.CallLog.Calls.NUMBER));
                String date = callLogCursor.getString(callLogCursor.getColumnIndex(android.provider.CallLog.Calls.DATE));
                Spanned content = Html.fromHtml(telephoneNumber + "<br /><small><font color='#9f9f9f'>" + date + "</font></small>");
                arrayList.add(content);
            }while (callLogCursor.moveToNext());
        }

感谢您的任何帮助,您可以提供。

4

0 回答 0