Как правильно использовать списки PIM в J2ME?

Как правильно проверить, поддерживается ли строковый массив PIM?

могу ли я использовать:

if (MyContactList.isSupportedField(Contact.ADDR)){...}

или мне лучше проверить:

if (MyContactList.isSupportedArrayElement(Contact.ADDR, Contact.ADDR_STREET))

или оба?

Вот мой код проблемы:

if (MyContactList.isSupportedField(Contact.ADDR)) {
//...
//...
String[] AaddressLines = CurrentContact.getStringArray(Contact.ADDR, 0);;
}

Неважно, если я закомментирую блок "если", он всегда вылетает. Единственное исправление, которое я вижу, - это полное игнорирование адресов, пожалуйста, помогите.

2 ответа

Лучший способ сделать это. Это работает нормально для меня. Смотрите этот образец,

String[] lists = pim.listPIMLists(PIM.CONTACT_LIST);
ContactList clist =  (ContactList) pim.openPIMList(PIM.CONTACT_LIST, PIM.READ_ONLY, lists[index]);
Enumeration contacts = clist.items();
while (contacts.hasMoreElements()) {

Contact c = (Contact) contacts.nextElement(); 
int[] fields = clist.getSupportedFields();
for (int count = 0; count < fields.length; count++) {
int value = fields[count];
// do smething

if (value == Contact.ADDR && c.countValues(Contact.ADDR) > 0) {
String[] addr = c.getStringArray(Contact.ADDR, 0);
...
...
  }
 }
}

На устройстве мне не удалось получить Contact.NAME, хотя isSupportedField(Contact.NAME) вернул true. Затем я должен был получить отдельные поля Contact.NAME, позвонив

String[] Names = ContactObj.getStringArray(Contact.NAME, 0);

Когда вы объединяете все элементы в массиве Names, вы получаете имя контакта. Это работало на всех устройствах.

Другие вопросы по тегам