2012-04-07 7 views
0

Ich brauche ein wenig Hilfe mit diesem .. Ich muss nur die Nummern des Typs Mobile in dieser Kontaktliste nehmen.Android: Kontakte Phone.TYPE

mit diesem Code extrahiere ich alle Zahlen, stattdessen muss ich nur mobile Typ..und zeigen sie in der Liste. hilf mir, und danke im voraus!

Code:

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: das Phone.TYPE Mobil int 2.

Antwort

2

Satz Auswahl und selectionArg zu folgenden:

selection="ContactsContract.Contacts.IN_VISIBLE_GROUP =? and Phone.TYPE=?"; 
selectionArgs=new String[]{"1", "2"}; 
+0

Dank viel für die Antwort – Tony