2010-03-24 117 views
1

编程方式获取数据我已经从我的应用程序调用的黑莓压延
谁能告诉我如何获取:黑莓 - 日历

  • 日期
  • 时间
  • 笔记

所选日期

我的代码:

MenuItem importCalender = new MenuItem("Import from Calender",100,11) 
    { 
    public void run() 
    { 
    UiApplication.getUiApplication().invokeAndWait(new Runnable() 
    { 
     public void run() 
     { 
     try 
     { 
      EventList list = (EventList)PIM.getInstance().openPIMList(PIM.EVENT_LIST, PIM.READ_WRITE); 



      Enumeration events = list.items(); 
      BlackBerryEvent e = (BlackBerryEvent) events.nextElement(); 


      Invoke.invokeApplication(Invoke.APP_TYPE_CALENDAR, new CalendarArguments(CalendarArguments.ARG_VIEW_DEFAULT,e)); 


     } 
     catch (PIMException e) 
     { 

     //e.printStackTrace(); 
     } 
     } 
    }); 
    } 

    }; 
    protected void makeMenu(Menu menu, int instance) 
    { 
    menu.add(importCalender); 
    } 
+0

看到更新的答案 – 2010-03-24 10:40:06

回答

1

您应该为日历应用程序注册自定义菜单项。

How To - Add a custom menu item to an existing BlackBerry application

UPDATE
alt text http://img228.imageshack.us/img228/5350/caledar1.jpgalt text http://img413.imageshack.us/img413/6417/caledar2.jpgalt text http://img401.imageshack.us/img401/4959/caledar4.jpg

class Scr extends MainScreen { 
    VerticalFieldManager mManager; 
    UiApplication mApp; 

    public Scr() { 
     mApp = UiApplication.getUiApplication(); 
     mManager = (VerticalFieldManager) this.getMainManager(); 
     MyMenuItem myMenuitem = new MyMenuItem(0); 
     ApplicationMenuItemRepository.getInstance().addMenuItem(
       ApplicationMenuItemRepository.MENUITEM_CALENDAR, myMenuitem); 

    } 

    class MyMenuItem extends ApplicationMenuItem { 
     MyMenuItem(int order) { 
      super(order); 
     } 

     public Object run(Object context) { 
      if (context instanceof Event) { 
       Event event = (Event) context; 
       final String text = "start: " 
         + (new Date(event.getDate(Event.START, 0))).toString() 
         + "\nend: " 
         + (new Date(event.getDate(Event.END, 0))).toString() 
         + "\nnote: " + event.getString(Event.NOTE, 0); 
       String message = "Import event\n" + text; 

       if (Dialog.YES == Dialog.ask(Dialog.D_YES_NO, message)) { 

        mApp.invokeLater(new Runnable() { 
         public void run() { 
          mApp.requestForeground(); 
          mManager.add(new LabelField(text)); 
         } 
        }); 
       } 
      } 
      return context; 
     } 

     public String toString() { 
      return "Import Event"; 
     } 
    } 

    MenuItem importCalender = new MenuItem("Import from Calender", 100, 11) { 
     public void run() { 
      UiApplication.getUiApplication().invokeAndWait(new Runnable() { 
       public void run() { 
        Invoke.invokeApplication(Invoke.APP_TYPE_CALENDAR, 
          new CalendarArguments(
            CalendarArguments.ARG_VIEW_DEFAULT)); 
       } 
      }); 
     } 
    }; 

    protected void makeMenu(Menu menu, int instance) { 
     menu.add(importCalender); 
    } 
} 
+0

压延应用程序被打开时,我点击菜单项 ,但我无法提取日期,持续时间,用户选择的特定日期的注释 y使用自定义菜单??????????? – Swati 2010-03-24 09:35:10

+0

非常感谢它的工作!!!!!!!! – Swati 2010-03-24 11:25:41

+0

不客气:) – 2010-03-24 13:26:49