2009-11-14 6 views
0

J'ai créé un élément de menu personnalisé dans le Blackberry Calendar Event Viewer qui a ouvert un autre écran. Lorsque l'écran est fermé, quelque chose a été changé sur l'événement et a été commis. Toutefois, le code suivant ne peut pas actualiser le contenu dans l'Observateur d'événements.BlackBerry - Comment actualiser l'écran Calendar Event Viewer par programmation?

Le code suivant est à l'intérieur de la méthode onClose() de l'écran et se trouve après la fermeture de l'écran.

UiApplication.getUiApplication().invokeLater(new Runnable() 
{ 
    public void run() 
    { 
     try 
     { 
      event0.setString(Event.NOTE, 0, 
       PIMItem.ATTR_NONE, "blahblan"); 
      event0.commit(); 
      //The active screen is Event Viewer. I tested it. 
      Screen screen = 
       UiApplication.getUiApplication().getActiveScreen(); 
      screen.invalidate(); 
     } 
     catch(Exception pexp) 
     { 
      return; 
     } 
    } 
}); 

Merci d'avance.

Répondre

0

Peut-être que l'événement est mis à jour uniquement dans le constructeur d'écran Voir l'événement ...

La solution consiste à ouvrir et fermer l'écran de visualisation d'événement ... en utilisant des injections d'événements

mEvent.commit(); 
// The active screen is Event Viewer. I tested it. 
Screen screen = UiApplication.getUiApplication().getActiveScreen(); 
UiApplication.getUiApplication().popScreen(screen); 
KeyEvent event = new KeyEvent(KeyEvent.KEY_DOWN, Characters.ENTER, 
    KeyListener.STATUS_NOT_FROM_KEYPAD); 
event.post(); 

N'oubliez pas de permettre l'application Permission -> Interaction -> Simulation d'entrée.
Ou en demander pragmatiquement (How to give blackberry application all the available permission?)

Questions connexes