2011-07-15 18 views
0

私はAndroid開発の初心者です。連絡先の名前から連絡先番号を取得したいです。私はアンドロイドを使用します。2.1.my連絡先名は簡単にスピナーで取得できます。連絡先の名前から電話番号を取得したいのですがそれは私を助けてください。事前に連絡先名で携帯電話を見つけよう

おかげでAndroidの連絡先の名前と番号で

よろしく アビシェーク曽爾

答えて

3

コード

cur=cr.query(ContactsContract.Contacts.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.HAS_PHONE_NUMBER +" > 0", null, null); 
    cur.moveToFirst(); 
    while(cur.isAfterLast()==false){ 
    // Log.e("Name is:",cur.getString(cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME))); 
      Fid=Integer.parseInt(cur.getString(cur.getColumnIndex(ContactsContract.Contacts._ID))); 

      int id=Integer.parseInt(cur.getString(cur.getColumnIndex(ContactsContract.Contacts._ID))); 
      Cursor pCur = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,null,null, null, null); 

      pCur.moveToFirst(); 
      while (pCur.isAfterLast()==false) { 
       int idinner=Integer.parseInt(pCur.getString(pCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.CONTACT_ID))); 
       if(idinner==id){ 
      } 
      pCur.moveToNext(); 
     } 
     cur.moveToNext(); 
    } cur=cr.query(ContactsContract.Contacts.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.HAS_PHONE_NUMBER +" > 0", null, null); 
    cur.moveToFirst(); 
    while(cur.isAfterLast()==false){ 
    // Log.e("Name is:",cur.getString(cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME))); 
      Fid=Integer.parseInt(cur.getString(cur.getColumnIndex(ContactsContract.Contacts._ID))); 

      int id=Integer.parseInt(cur.getString(cur.getColumnIndex(ContactsContract.Contacts._ID))); 
      Cursor pCur = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,null,null, null, null); 

      pCur.moveToFirst(); 
      while (pCur.isAfterLast()==false) { 
       int idinner=Integer.parseInt(pCur.getString(pCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.CONTACT_ID))); 
       if(idinner==id){ 
      } 
      pCur.moveToNext(); 
     } 
     cur.moveToNext(); 
    } 

と、このIDのことができますよりも下からのテイクcontact_idのために、異なるのContentProviderに保存しています携帯電話番号やその他の詳細を取得する

public String getNo(String[] no){ 

    String seleContact=""; 
// String[] contactNos=new String[no.length]; 
    for(int i=0;i<no.length;i++){ 
     if(no[i].trim().toString().equalsIgnoreCase("")){ 
      break; 
     } 
     int id=Integer.parseInt(no[i]); 
     //Cursor cur=cr.query(ContactsContract.Contacts.CONTENT_URI, null, ContactsContract.Contacts._ID +" = "+id, null, null); 
     //cur.moveToFirst(); 

     Cursor pCur = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,null,ContactsContract.CommonDataKinds.Phone.CONTACT_ID+"="+id, null, null); 
     pCur.moveToFirst(); 

     while(pCur.isAfterLast()==false){ 
       if(Integer.parseInt(pCur.getString(pCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.TYPE)))==(ContactsContract.CommonDataKinds.Phone.TYPE_MOBILE)){ 
    //    String uname=cur.getString(cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME)).toString(); 
        String tempMoNo=pCur.getString(pCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); 
        Log.e("Activity result selelength is",String.valueOf(seleContact.length())); 
        String[] temp=tempMoNo.split("-"); 
        String MoNo=""; 
        int le=temp.length; 
        for(int j=0;j<le;j++){ 
         MoNo +=temp[j]; 
        } 

        if (seleContact.length() > 0) { 
          seleContact += "," + (MoNo); 
         } else { 
          seleContact += (MoNo); 
          }    
       } 
      pCur.moveToNext(); 
      } 
     pCur.close(); 
    } 

    return seleContact; 
} 

このメソッドを使用すると、連絡先IDを文字列形式で渡します。

関連する問題