Blackberry: Как запустить стороннее приложение из собственного пункта меню собственных приложений, передавая соответствующие данные? - PullRequest
0 голосов
/ 27 августа 2010

Я пытаюсь создать свой собственный пункт меню во встроенном приложении «Контакты». И при нажатии на этот пункт меню придется запускать мое приложение с указанными контактными данными.

Я мог бы добавить свой собственный пункт меню в собственное меню приложения «Контакты». Показывает это на BB 4.7 Simulator.

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

Но при нажатии на пункт меню из родных контактов он успешно запускается в моем приложении. Здесь тоже нет проблем. Но я хочу знать, как я могу получить выбранную контактную информацию из родного контакта в мое приложение. Я использую "контекст экземпляра контакта". Я должен пройти запись и выбрать только имя контакта и номер мобильного телефона. Как мне этого добиться?

1 Ответ

0 голосов
/ 28 августа 2010

Я все окончательно решил.

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

        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...