BlackBerry Forums Support Community

BlackBerry Forums Support Community (http://www.blackberryforums.com/index.php)
-   Developer Forum (http://www.blackberryforums.com/forumdisplay.php?f=15)
-   -   NullPointerException on focusing a manager (http://www.blackberryforums.com/showthread.php?t=90429)

rock_win 08-14-2007 05:49 AM

NullPointerException on focusing a manager
 
Hi

As per the hierarchy manager extends Field.

So, i have overriden the drawFocus and isFocusable methods.

But whenever my isFocusable returns true for that manager, i get NullPointerException , even before its true value is set. i value is set to false, then it works fine.

I'm using the CustomManager code at BB developer site and adding drawFocus to it

arifzaman 08-14-2007 07:23 AM

Hi rock_win,

Is it possible to open your source code, so that we can point to your interest?

Thanks,
ARIF

rock_win 08-15-2007 01:22 AM

Heres the code, as soon as i set _focusable to true, i get the exception
Code:

import net.rim.device.api.ui.*;
import net.rim.device.api.ui.component.*;
import net.rim.device.api.ui.container.*;
import net.rim.device.api.system.*;




class MainFrame extends Manager{
    public boolean _focusable=false;
    boolean extent1=true;
    int _width=0,_height=0;//for width and height of individual field
        int x=0,y=0;//for each field
       
   
    MainFrame(int x,int y,int _width,int _height) {
    super(Manager.VERTICAL_SCROLL|Manager.FOCUSABLE);
    this.x=x;
    this.y=y;
    this._width=_width;
    this._height=_height;
      }
   
    public int getPreferredWidth()
    {
        return 260;
    }
    public int getPreferredHeight()
    {
        return 160;
    }
   
        public void sublayout(int width,int height)
    {
        System.out.println("width:"+width+"\t height:"+height);
        Field field;
        int noFields=getFieldCount();   
       
   
        for(int i=0;i<noFields;i++)
        {
            field=getField(i);
            setPositionChild(field,10,10+y);
       
if(field instanceof CustomRectField){
    System.out.println("Drawing RectField"+getExtent().width+"\t"+getExtent().height);
            x=((CustomRectField)field).x;
                y=((CustomRectField)field).y;
                _width=((CustomRectField)field)._width;
                _height=((CustomRectField)field)._height;
              setPositionChild(field,x,y);
        }
            layoutChild(field,_width,_height);
            //y+=30;
        }
     
  setExtent(getPreferredWidth(),getPreferredHeight());
 
    }
  public boolean isFocusable()
    {
        return _focusable;
    }
 
}


bemshaswing 08-15-2007 11:29 AM

This is totally a guess but the manager class might not like being constructed with Manager.FOCUSABLE while returning false (from public boolean _focusable=false; , return _focusable) via your overriding isFocusable method.

rock_win 08-16-2007 07:45 AM

Figured out the problem, it was the problem the fields are getting added in, at the time isFocusable is called the managers are empty


All times are GMT -5. The time now is 10:50 AM.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.