Saya mereferensikan tautan pelatihan pengembang android ini untuk diterapkan dalam pengambilan detail kontak dengan kriteria seleksi

/*
     * Defines the selection clause. Search for a lookup key
     * and the Email MIME type
     */
    private static final String SELECTION =
            Data.LOOKUP_KEY + " = ?" +
            " AND " +
            Data.MIMETYPE + " = " +
            "'" + Email.CONTENT_ITEM_TYPE + "'";

@Override
    public Loader<Cursor> onCreateLoader(int loaderId, Bundle args) {
        // Choose the proper action
        switch (loaderId) {
            case DETAILS_QUERY_ID:
            // Assigns the selection parameter
            mSelectionArgs[0] = mLookupKey;
            // Starts the query
            CursorLoader mLoader =
                    new CursorLoader(
                            getActivity(),
                            Data.CONTENT_URI,
                            PROJECTION,
                            SELECTION,
                            mSelectionArgs,
                            SORT_ORDER
                    );
            ...
    }

Saat masuk ke ganti nama kontak misalnya. Kemudian dalam satu kasus ketika menambahkan kontak dilakukan oleh aplikasi kita, pemuat kursor tidak dapat mendeteksi perubahan dengan benar. Saya memeriksa kunci pencarian, kunci kontak yang ditambahkan berbeda dengan yang lain (misalnya: Orod-1340xxxxxxxx).

Setelah mencari diskusi, kunci pencarian dapat berubah dan menyarankan untuk menggunakan pencarian kontak uri dengan kunci pencarian. Tetapi pencarian uri tidak dapat digunakan dalam kueri di atas. Saya perlu menanyakan di tabel Data untuk info detailnya.

Bagaimana saya bisa mencapai itu? Terima kasih banyak.

1
rodent_la 14 Desember 2017, 19:27

1 menjawab

Jawaban Terbaik

Coba gunakan CONTACT_ID daripada LOOKUP_KEY.

private static final String SELECTION =
    Data.CONTACT_ID + " = ? AND " +
    Data.MIMETYPE + " = '" + Email.CONTENT_ITEM_TYPE + "'";

Anda mungkin menemukan peringatan untuk tidak menggunakan id kontak dan sebagai gantinya menggunakan kunci pencarian atau uris pencarian, tetapi itu untuk mempertahankan referensi kontak ke dalam database untuk disimpan dalam waktu lama, jika aplikasi Anda saat ini aktif dan berjalan, dan baru-baru ini menanyakan contact-id ini, sangat aman dan ok untuk menggunakannya, bahkan lebih baik menggunakan contact-id untuk tujuan ini karena lebih stabil sebagai id mandiri.

Lihat info selengkapnya di sinidan di sini

0
marmor 14 Desember 2017, 21:11