Android调用日志CursorAdapter显示每个数字的一​​些记录

时间:2014-10-14 17:26:35

标签: android listview android-listview cursor adapter

我的CursorAdapter在ListView中显示调用日志。我想只显示一次所有数字,但如果我给某人打了三次电话,那么这将显示同一行3次。 我只需要一次显示每个数字。

这是我的CursorAdapter的一部分:

class LogAdapter extends CursorAdapter {

    @Override
    public void bindView(View view, Context context, Cursor cursor) {
        final ViewHolder holder = (ViewHolder) view.getTag();

        String number = cursor.getString(LogQuery.NUMBER);
        Cursor contactCursor = getContactCursor(number);

        if (contactCursor.getCount() >= 1) {
            String name = contactCursor.getString(ContactsQuery.NAME);
            Uri contactUri = Contacts.getLookupUri(
                    contactCursor.getLong(ContactsQuery.ID),
                    contactCursor.getString(ContactsQuery.LOOKUP_KEY));

            holder.mName.setText(name);
            holder.mNumber.setText(number);
        }
    }

    private Cursor getContactCursor(String number) {
        Uri contactUri = Uri.withAppendedPath
                (ContactsQuery.CONTENT_FILTER_URI, Uri.encode(number));

        Cursor cursor = getActivity().getContentResolver().query
                (contactUri, ContactsQuery.PROJECTION, null, null, null);
        cursor.moveToFirst();
        return cursor;
    }

}

0 个答案:

没有答案