как правильно использовать списки PIM в J2ME? - PullRequest
1 голос
/ 16 марта 2011

Как правильно проверить, поддерживается ли строковый массив 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 ]

3 голосов
/ 16 марта 2011

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

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);
...
...
  }
 }
}
0 голосов
/ 23 октября 2012

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

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

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

...