Blackberry — Как получить метки полей от PIMItem

Как мы можем получить метки полей из PIMItem. Следующий код с PIMList

String label = pimList.getAttributeLabel(
    blackBerryContact.getAttributes(Contact.TEL, i));

Но у меня есть PIMItem. В приведенном ниже коде есть метод PIMItem.getPIMList(), который возвращает для меня значение null. API на http://www.blackberry.com/developers/docs/5.0.0api/index.html говорит "getPIMList() Gets the PIMList associated with this item." Ниже приведен пример кода, который я пытаюсь достичь -

// Load the address Book and allow the user to select a contact
BlackBerryContactList contactList = (BlackBerryContactList) 
    PIM.getInstance().openPIMList(PIM.CONTACT_LIST,PIM.READ_ONLY);
PIMItem userSelectedContact = contactList.choose();
// Now get the Field labels for contact numbers for userSelectedContact 

person Taha    schedule 06.05.2010    source источник


Ответы (2)


Спасибо Макс за ответ. Проблема с возвратом NULL была проблемой с моим кодом, который я исправил. Я также смог получить метки для полей, но цикл извлекает только те поля, которые есть у контакта на его карточке.

Я хочу получить все 8 ярлыков, которые есть у Contact.TEL -

Int maxAllowed = contactList.maxValues(Contact.TEL); // Gives me 8 

Все 8 меток могут не использоваться пользователем, например, у пользователя могут быть WORK, WORK2, HOME, HOME2 и MOBILE. Другие ФАКС, ПЕЙДЖЕР и ДРУГОЕ могут быть не заполнены. Я хочу получить все разрешенные ярлыки и обновить заданный номер для того, который пуст. Как мы можем проверить и обновить следующие

Contact.ATTR_PAGER, Contact.ATTR_FAX, Contact.ATTR_OTHER

Пожалуйста, дайте мне знать, если объяснение неясно или требуется дополнительная информация.

BlackBerryContactList contactList = (BlackBerryContactList) 
    PIM.getInstance().openPIMList(PIM.CONTACT_LIST,PIM.READ_WRITE);
PIMItem pimItem = contactList.choose();
BlackBerryContact blackBerryContact = (BlackBerryContact)pimItem;
PIMList pimList = blackBerryContact.getPIMList();
// To get Labels 
int phoneCount = blackBerryContact.countValues(BlackBerryContact.TEL);
String[] phoneNumbers = new String[phoneCount];
String[] labels = new String[phoneCount];
for (int i = 0; i > phoneCount; i++) {
    String phoneNumber = blackBerryContact.getString(Contact.TEL, i);
    String label = pimList.getAttributeLabel(
        blackBerryContact.getAttributes(Contact.TEL, i));
//Add the number and label to the array.
    phoneNumbers[i] = phoneNumber;
    labels[i] = label + ":" + phoneNumber;
}
person Taha    schedule 06.05.2010
comment
Привет, Макс. Можно ли обновить номера Contact.ATTR_PAGER, Contact.ATTR_FAX, Contact.ATTR_OTHER для контакта? - person Taha; 07.05.2010

person    schedule
comment
Макс, было невозможно поместить все это объяснение и пример кода, который работает для меня, в это поле для комментариев, поэтому я добавил ответ на свой вопрос. Еще раз спасибо за ответ и новую логику - person Taha; 06.05.2010