2010-08-27 60 views
0

我想在内置的联系人应用程序中创建我自己的菜单项。当点击该菜单项时,将不得不通过所选择的联系方式启动我的应用程序。黑莓手机:如何从本地应用程序自定义菜单项传递与相关数据的第三方应用程序?

我可以将我自己的菜单项添加到本地通讯录应用程序菜单中。它在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; 
    } 

但是,当从本地联系人菜单一点击,它succedully启动我的应用程序。这里也没有问题。 但我想知道如何将本地联系人的选定联系人详细信息提取到我的应用程序。我使用“context instanceof Contact”。我必须查看记录并选择联系人姓名和手机号码。我怎样才能实现它?

回答

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())); 

     } 
相关问题