2011-09-15 34 views
0

我可以選擇姓名,但我很困惑如何在姓名與其關聯的電話號碼超過1個時選擇電話號碼。以下是我的代碼。我想從聯繫人列表中選擇姓名和電話號碼,並在我的應用中顯示

public class getName extends Activity { 
//permission 
//<uses-permission android:name="android.permission.READ_CONTACTS" /> 
/** Called when the activity is first created. */ 
private static final int PICK_CONTACT = 0; 
EditText Name; 
EditText Phone; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    Name = (EditText)findViewById(R.id.editText1); 
    Phone = (EditText)findViewById(R.id.editText2); 

    Button b = (Button) findViewById(R.id.button1); 
    b.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 
      // to read contacts add android.permission.READ_CONTACTS 
      Intent intent = new Intent(Intent.ACTION_PICK, People.CONTENT_URI); 
      //intent.setType(ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE); 
      startActivityForResult(intent, 0); 
     } 
    }); 
} 

public void onActivityResult(int reqCode, int resultCode, Intent data) { 
    super.onActivityResult(reqCode, resultCode, data); 
    ContentResolver cr = getContentResolver(); 
    switch (reqCode) { 
    case (PICK_CONTACT) : 
     if (resultCode == Activity.RESULT_OK) { 
      Uri contactData = data.getData(); 
      Cursor c = managedQuery(contactData, null, null, null, null); 
      if (c.moveToFirst()) { 
       String name = c.getString(c.getColumnIndexOrThrow(People.Phones.NAME)); 
       Name.setText(name); 

       Uri uri = data.getData(); 
       Cursor cursor=managedQuery(uri, null, null, null, null); 

       while (cursor.moveToNext()) { 
        String contactId = cursor.getString(cursor.getColumnIndex( 
          ContactsContract.Contacts._ID)); 
        String hasPhone = cursor.getString(cursor.getColumnIndex( 
          ContactsContract.Contacts.HAS_PHONE_NUMBER)); 
        if (Boolean.parseBoolean(hasPhone)) { 
         // You know have the number so now query it like this 
         Cursor phones = getContentResolver().query( 
           ContactsContract.CommonDataKinds.Phone.CONTENT_URI, 
           null, 
           ContactsContract.CommonDataKinds.Phone.CONTACT_ID +" = "+ contactId, 
           null, null); 
         while (phones.moveToNext()) { 
          String phoneNumber = phones.getString( 
            phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));    
         } 
         phones.close(); 
        } 
       } 




      } 

     } 
    break; 
    } 

} 

}

回答

0

如果取消對第二行中的按鈕的onClick你應該看到聯繫人的名字和他們數的列表。 SO,你可以直接選擇一個號碼

Intent intent = new Intent(Intent.ACTION_PICK, People.CONTENT_URI); 
intent.setType(ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE); 
相關問題