2010-01-21 4 views
0

Dans mon application Blackberry, j'ai un gestionnaire qui contrôle la disposition des champs pour mon écran. C'est la manière standard de faire les choses quand vous voulez une disposition personnalisée.Exception levée lorsque je mets isFocusable sur un gestionnaire blackberry

Maintenant, l'un des "champs" que j'utilise est lui-même un gestionnaire qui énonce bien une série de contrôles. Appelez ce "champ" le "summaryField" car il résume les données pour moi. Tout cela rend bien.

Cependant, lorsque je remplace le membre isFocusable() de "summaryField", je commence à obtenir une exception de pointeur null.

Quelqu'un at-il une idée de la raison pour laquelle cette exception est levée?

public class SummaryField extends Manager 
{ 
protected void drawFocus(Graphics graphics, boolean on) { 
     super.drawFocus(graphics, on); 
    } 
    protected void onFocus(int direction) { 
     super.onFocus(direction); 
    } 
    protected void onUnfocus() { 
     super.onUnfocus(); 
    } 


    public boolean isFocusable() { 
     return true; 
    } 
} 
+0

Pouvez-vous donner plus de détails sur le NPE, comme une trace de pile? –

Répondre

1

Si je devais deviner, je dirais que votre directeur ne contient probablement pas tous les champs vario en elle, et donc votre valeur hardcoded retour « true » pour isFocusable() est couché sur l'état réel du SummaryField. Rappelez-vous que les gestionnaires eux-mêmes ne peuvent pas avoir «focus», seulement les champs qui s'y trouvent.

+0

Cela semble avoir fait l'affaire. Ce serait bien si la documentation du Manager l'épelait. – yamspog

Questions connexes