Java me 如何在J2ME中正确使用PIM列表?

Java me 如何在J2ME中正确使用PIM列表?,java-me,contacts,jsr75,pim,Java Me,Contacts,Jsr75,Pim,检查PIM字符串数组是否受支持的正确方法是什么 我可以使用: if (MyContactList.isSupportedField(Contact.ADDR)){...} 或者我最好检查一下: if (MyContactList.isSupportedArrayElement(Contact.ADDR, Contact.ADDR_STREET)) 或者两者都有 以下是我的问题代码: if (MyContactList.isSupportedField(Contact.ADDR)) { //.

检查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);;
}

不管我是否注释掉“if”块,它总是崩溃。我能看到的唯一解决办法是完全忽略地址,请帮助。

这样做的更好方法。这对我来说很好。看看这个例子

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);
...
...
  }
 }
}
String[]lists=pim.listPIMLists(pim.CONTACT_LIST);
ContactList clist=(ContactList)pim.openPIMList(pim.CONTACT_LIST,pim.READ_ONLY,LIST[index]);
枚举联系人=clist.items();
while(contacts.hasMoreElements()){
Contact c=(Contact)contacts.nextElement();
int[]fields=clist.getSupportedFields();
for(int count=0;count0){
String[]addr=c.getStringArray(Contact.addr,0);
...
...
}
}
}

在设备上,我无法获取Contact.NAME,即使IsupportedField(Contact.NAME)返回true。然后我必须通过调用获取Contact.NAME的各个字段

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

当您对名称数组中的所有元素进行合并时,将获得联系人名称。这在所有设备上都有效