2016-08-17 7 views
-1

これは多くの回答が見つかって以来よくある質問ですが、まだ電話番号の取得に関する問題があります。1件の連絡先からすべての番号を取得する

PICK_CONTACTアクティビティから選択した1人の連絡先からすべての番号を取得したいとします。

ここでonActivityResult(から私のコードがある)私はすべての異なる番号を取得するためにループしばらく(phones.moveToNext())を期待

@Override 
public void onActivityResult(int reqCode, int resultCode, Intent data) { 
    super.onActivityResult(reqCode, resultCode, data); 

    switch (reqCode) { 
     case (PICK_CONTACT) : 
      if (resultCode == Activity.RESULT_OK) { 

       ArrayList<String> allContacts = new ArrayList<String>(); 

       Uri contactData = data.getData(); 
       Cursor c = getContentResolver().query(contactData, null, null, null, null); 
       while (c.moveToNext()) { 

        String contact_id = c.getString(c.getColumnIndex(_ID)); 
        String hasPhone =c.getString(c.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER)); 

        if (hasPhone.equalsIgnoreCase("1")) { 
         Cursor phones = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = ?", new String[] { contact_id }, null); 
         while (phones.moveToNext()) 
         { 
          String contactNumber = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); 
          allContacts.add(contactNumber); 

          break; 
         } 
         phones.close(); 

        } 
        String name = c.getString(c.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME)); 
        TXT_EmergencyContactNameProfile.setText(name); 
       } 

      } 
      break; 
    } 
} 

をブロック...しかし、無

感謝あなたは大いに前もって;)

+0

あなたはあなたが得るものではなく、得られないものを書きました。あなたは今何を得ていますか? – MorZa

+0

ねえ!まず、ありがとう!私は選んだ連絡先から最初の電話番号を取得するだけです。私はそれらをすべて取得したいと思います。 – GrayFox

+0

まず最初に、私はループ内で何回チェックするかを確認するwhileループの電話番号をlogcatに出力しようとします(もちろん、選択した連絡先には複数の電話番号)。おそらく、あなたは "休憩"を削除する必要があります。 – MorZa

答えて

1

"break;" whileループの内側。

関連する問題