0

アプリで連絡先を1つだけ選択したい。しかし、問題は、連絡先を選択すると、私が持っているすべての連絡先が選択されることです。私のコードを確認してください。

コードは次のとおりです。

btnContact.setOnClickListener(new View.OnClickListener() {                        
        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            Intent intent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI);
            startActivityForResult(intent, RQS_PICK_CONTACT);
        }
    });

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  // TODO Auto-generated method stub
  super.onActivityResult(requestCode, resultCode, data);
  ContentResolver cr = getContentResolver();
  Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);

  if (cur.getCount() > 0) {   
   while (cur.moveToNext()) {
       String id = cur.getString(cur.getColumnIndex(ContactsContract.Contacts._ID));

       if (Integer.parseInt(cur.getString(cur.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER))) > 0) {
           // get the phone number
           Cursor pCur = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,null, 
                                  ContactsContract.CommonDataKinds.Phone.CONTACT_ID +" = ?", 
                                  new String[]{id}, null);
           while (pCur.moveToNext()) {
               String name = pCur.getString(pCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
                 String phone = pCur.getString(pCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
                 txtPhoneNo.append(name + " <" + phone + ">");
           }               
           pCur.close();
 // Get note.......
           String noteWhere = ContactsContract.Data.CONTACT_ID + " = ? AND " + ContactsContract.Data.MIMETYPE + " = ?"; 
           String[] noteWhereParams = new String[]{id, 
           ContactsContract.CommonDataKinds.Note.CONTENT_ITEM_TYPE}; 
                   Cursor noteCur = cr.query(ContactsContract.Data.CONTENT_URI, null, noteWhere, noteWhereParams, null); 
           if (noteCur.moveToFirst()) { 
               String note = noteCur.getString(noteCur.getColumnIndex(ContactsContract.CommonDataKinds.Note.NOTE));
               textCode.append(note);
               try {
                File myFile = new File("/sdcard/file.txt");
                myFile.createNewFile();
                FileOutputStream fOut = new FileOutputStream(myFile);
                OutputStreamWriter myOutWriter = 
                                        new OutputStreamWriter(fOut);
                myOutWriter.append(textCode.getText());
                myOutWriter.close();
                fOut.close();

            } catch (Exception e) {

            }
           } 
           noteCur.close();

       }}
  }
}

私のコードに何か問題がありますか?

前もって感謝します。

4

0 に答える 0