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

发布于 2024-10-23 13:44:16 字数 510 浏览 8 评论 0原文

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

What is the correct way to check if a PIM string array is supported?

can I use:

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

or would I be better to check :

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

or both?

The following is my problem code:

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

It doesn't matter if I comment out the "if" block it always crashes. Only fix I can see is to ignore addresses altogether, please help.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

挽袖吟 2024-10-30 13:44:16

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

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);
...
...
  }
 }
}

Better way to do like this. Its working fine for me. See this sample,

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);
...
...
  }
 }
}
独闯女儿国 2024-10-30 13:44:16

在设备上,即使 isSupportedField(Contact.NAME) 返回 true,我也无法获取 Contact.NAME。 来获取 Contact.NAME 的各个字段。

然后我必须通过调用String[] Names = ContactObj.getStringArray(Contact.NAME, 0);

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

On device I could not get Contact.NAME even though isSupportedField(Contact.NAME) returned true. Then I had to get the individual fields of Contact.NAME by calling

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

When you concat all elements in Names array, you get Contact name. This worked on all devices.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文