我正在尝试在内置联系人应用程序中创建自己的菜单项。点击该菜单项时,必须使用所选的联系方式启动我的应用程序。
我可以将自己的菜单项添加到本机联系人应用菜单中。它在BB 4.7模拟器上显示。
amir.addMenuItem(ApplicationMenuItemRepository.MENUITEM_ADDRESSBOOK_LIST, contactsDemoMenuItem);
我正在尝试使用所选联系人的详细信息启动我的应用程序屏幕。
我按照代码执行,
public class SampleMenuItem extends ApplicationMenuItem
{
Contact mContact;
SampleMenuItem()
{
super(20);
}
public Object run(Object context)
{
if (context instanceof Contact)
{
mContact = (Contact) context;
pushScreen(new MyAppNextScreen(<Here i need to pass a string which should have contact name and mobile number appended>));
}
return context;
}
但是当点击本机联系人的菜单项时,它就会成功启动到我的应用程序。这里也没有问题。 但我想知道如何将选定的联系人详细信息从Native联系人提取到我的应用程序。我使用“context instanceof Contact”。我必须通过记录,只选择联系人姓名和手机号码。我怎样才能实现它?
答案 0 :(得分:0)
我终于解决了所有问题。
public Object run(Object context)
{
if (context instanceof Contact) {
mContact = (Contact) context;
String data;
StringBuffer strOut = new StringBuffer();
String[] dataArray = mContact.getStringArray(Contact.NAME, 0);
if((data = dataArray[Contact.NAME_GIVEN]) != null)
{
strOut.append(data);
}
int n = mContact.countValues(Contact.TEL);
for(int i=0; i<n; i++)
{
data = mContact.getString(Contact.TEL, i);
strOut.append(" - ");
strOut.append(data);
if(Contact.ATTR_WORK == mContact.getAttributes(Contact.TEL, i))
strOut.append("(Work Phone)");
else if(Contact.ATTR_MOBILE == mContact.getAttributes(Contact.TEL, i))
strOut.append("(Mobile Phone)");
else if(Contact.ATTR_HOME == mContact.getAttributes(Contact.TEL, i))
strOut.append("(Home Phone)");
else if(Contact.ATTR_FAX == mContact.getAttributes(Contact.TEL, i))
strOut.append("(Fax NO)");
else if(Contact.ATTR_PAGER == mContact.getAttributes(Contact.TEL, i))
strOut.append("(Page NO)");
}
catch(Exception e)
{
System.out.println("No Email Address");
}
UiApplication.getUiApplication().pushScreen(new MyAppNextScreen(strOut.toString()));
}