1

检查是否支持 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”块它总是崩溃并不重要。我能看到的唯一解决方法是完全忽略地址,请帮忙。

4

2 回答 2

3

这样做的更好方法。它对我来说工作正常。看到这个样本,

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);
...
...
  }
 }
}
于 2011-03-16T05:44:27.430 回答
0

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

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

当您连接 Names 数组中的所有元素时,您将获得联系人姓名。这适用于所有设备。

于 2012-10-23T15:17:06.797 回答