do while 循环中使用游标,仅从数组中返回 3 个值

huangapple 未分类评论46阅读模式
英文:

do while with cursor only returning 3 values from an array

问题

String phoneNum;

int dataIdx = cursor.getColumnIndex(ContactsContract.Contacts.Entity.DATA1);

int mimeIdx = cursor.getColumnIndex(ContactsContract.Contacts.Entity.MIMETYPE);

cursor.moveToFirst();

int i = 0;

do {
    i++;
    phoneNum = "phone" + i ;
    returnKeys.put(ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE,"name");
    returnKeys.put(ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE, phoneNum);
    returnKeys.put(ContactsContract.CommonDataKinds.Email.CONTENT_ITEM_TYPE, "email");

    mime = cursor.getString(mimeIdx);

    if(returnKeys.containsKey(mime)) {
        contactData.putString((String) 
        returnKeys.get(mime)
        cursor.getString(dataIdx));

        cursor.moveToNext();
        foundData = true;
    }
} while (cursor.moveToNext());

cursor.close();
if(foundData) {
    mContactsPromise.resolve(contactData);
    return;
} else {
    mContactsPromise.reject(E_CONTACT_NO_DATA, "No data found for contact");
    return;
}
} catch (Exception e) {
    mContactsPromise.reject(E_CONTACT_EXCEPTION, e.getMessage());
    return;
}
英文:

I want to return the name and all the numbers for a single contact. for example if a contact has 4 numbers i want to return it as phone1, phone2,etc... . I have a code that opens contact list and and return only one contact. I Changed it to this but it either returns three contacts or none at all.


     String phoneNum;
    
      int dataIdx = cursor.getColumnIndex(ContactsContract.Contacts.Entity.DATA1);
    
      int mimeIdx = cursor.getColumnIndex(ContactsContract.Contacts.Entity.MIMETYPE);
    
      cursor.moveToFirst();
    
       int i = 0;
    
       do {
           i++;
           phoneNum = "phone" + i ;
           returnKeys.put(ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE,"name");
           returnKeys.put(ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE, phoneNum);
           returnKeys.put(ContactsContract.CommonDataKinds.Email.CONTENT_ITEM_TYPE, "email");
    
           mime = cursor.getString(mimeIdx);
    
           if(returnKeys.containsKey(mime)) {
                contactData.putString((String) 
                returnKeys.get(mime)
                cursor.getString(dataIdx));
    
                cursor.moveToNext();
                foundData = true;
          }
      } while (cursor.moveToNext());
      
      cursor.close();
      if(foundData) {
           mContactsPromise.resolve(contactData);
           return;
      } else {
          mContactsPromise.reject(E_CONTACT_NO_DATA, "No data found for contact");
          return;
      }
   } catch (Exception e) {
       mContactsPromise.reject(E_CONTACT_EXCEPTION, e.getMessage());
       return;
   }

huangapple
  • 本文由 发表于 2020年4月9日 11:41:00
  • 转载请务必保留本文链接:https://java.coder-hub.com/61113573.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定