0

私はこれについて少し助けが必要です..私はこの連絡先リストのタイプモバイルの番号だけを取る必要があります。

このコードを使用して、すべての番号を抽出します。代わりに、モバイルタイプのみを取得してリストに表示する必要があります。私を助けてください、そして事前に感謝します!

コード:

void ReadContacts(String sort) {
        final Uri uri = Phone.CONTENT_URI;
         final String[] projection = new String[] {
                Contacts._ID,
                 Phone.NUMBER,
                 Contacts.DISPLAY_NAME,
                 Phone.TYPE
         };
        String selection = ContactsContract.Contacts.IN_VISIBLE_GROUP + " = '1'";
        String[] selectionArgs = null;
        final String sortOrder = Contacts.DISPLAY_NAME + " COLLATE LOCALIZED ASC";

        m_curContacts = managedQuery(uri, projection, selection, selectionArgs, sortOrder);
        String[] fields = new String[] {Contacts.DISPLAY_NAME, Phone.NUMBER};
        m_slvAdapter = new SimpleCursorAdapter(this,R.layout.simple_list_item_mio,m_curContacts,fields, 
                new int[] {R.id.text1, R.id.text2});           

        m_slvAdapter.setFilterQueryProvider(new FilterQueryProvider() { 
            public Cursor runQuery(CharSequence constraint) {
                Log.d(LOG_TAG, "runQuery constraint:"+constraint);
                String selection = ContactsContract.Contacts.IN_VISIBLE_GROUP + " = '1'" +
                    " AND "+ Contacts.DISPLAY_NAME + " LIKE '%"+constraint+"%'";
                String[] selectionArgs = null;//new String[]{"'1'"};//, };
                Cursor cur = managedQuery(uri, projection, selection, selectionArgs, sortOrder);
                return cur;
            }

        });

ps:Phone.TYPEmobileはint2です。

4

1 に答える 1

2

SelectionとselectionArgを次のように設定します。

selection="ContactsContract.Contacts.IN_VISIBLE_GROUP =? and Phone.TYPE=?";
selectionArgs=new String[]{"1", "2"};
于 2012-04-07T04:05:01.907 に答える