Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Blackberry Field Manager滚动显示NullpointerException_Blackberry_Blackberry Simulator_Blackberry Jde - Fatal编程技术网

Blackberry Field Manager滚动显示NullpointerException

Blackberry Field Manager滚动显示NullpointerException,blackberry,blackberry-simulator,blackberry-jde,Blackberry,Blackberry Simulator,Blackberry Jde,我有黑莓横向和纵向领域经理的问题。在我的示例应用程序中,我将两个垂直字段管理器添加到一个水平字段管理器中,GUI如下图所示 在button的change listener字段中,我正在删除左VFM,然后只显示Home按钮,在Home button listener中,我正在添加左VFM,然后返回到上面的屏幕 在滚动左侧内容并删除左侧VFM后出现问题,然后仅显示主页按钮,轨迹板导航(滚动)将导致空指针异常屏幕。下图包含错误的模拟器屏幕截图 这是复制错误的完整源代码 公共类MyApp扩展UiAp

我有黑莓横向和纵向领域经理的问题。在我的示例应用程序中,我将两个垂直字段管理器添加到一个水平字段管理器中,GUI如下图所示

在button的change listener字段中,我正在删除左VFM,然后只显示Home按钮,在Home button listener中,我正在添加左VFM,然后返回到上面的屏幕

在滚动左侧内容并删除左侧VFM后出现问题,然后仅显示主页按钮,轨迹板导航(滚动)将导致空指针异常屏幕。下图包含错误的模拟器屏幕截图

这是复制错误的完整源代码

公共类MyApp扩展UiApplication{
公共静态void main(字符串[]args)
{
//创建应用程序的新实例,并使
//正在运行应用程序的事件调度线程。
MyApp theApp=新的MyApp();
theApp.enterEventDispatcher();
}
/**
*创建新的MyApp对象
*/
公共MyApp()
{        
//将屏幕推到UI堆栈上进行渲染。
推屏(新MyScreen());
}
}
公共最终类MyScreen扩展主屏幕{
私有HorizontalFieldManager hfmMainManager=null;
私有VerticalFieldManager菜单按钮管理器=null;
私有字符串[]按钮=新字符串[]{“按钮ID 1”,
“按钮ID 2”,
“按钮ID 3”,
“按钮ID 4”,
“按钮ID 5”,
“按钮ID 6”,
“按钮ID 7”,
“按钮ID 8”,
“按钮ID 9”,
“按钮ID 10”};
私有布尔值menushow=false;
/**
*创建一个新的MyScreen对象
*/
公共MyScreen()
{        
超级(Manager.NO_VERTICAL_SCROLL | Main Screen.NO_VERTICAL_SCROLL Bar
|Manager.NO_水平滚动条(Manager.NO_水平滚动条);
hfmMainManager=new HorizontalFieldManager(Manager.NO\u HORIZONTAL\u滚动
|管理器(无水平滚动条);
////////////////////菜单按钮
menuButtonManager=新建垂直字段管理器(Manager.NO_VERTICAL_SCROLL | Manager.NO_VERTICAL_SCROLLBAR);
menuButtonManager.add(newbuttonfield(“Header Button”,Field.fieldhcenter));
VerticalFieldManager vfmScrollable=新的VerticalFieldManager(Manager.VERTICAL_SCROLL | Manager.VERTICAL_SCROLLBAR);
对于(int i=0;i
我如何解决这个问题

提前谢谢

问候


Anish

我在试图改变聚焦或非聚焦事件的场结构时也看到过类似的行为。当一个字段从焦点事件中间的屏幕中删除时,焦点跟踪会失去同步,并导致异常的错误。尝试从获取UI锁改为调用invokeLater。这样,更改侦听器就可以在删除VFM之前完成执行,并保留所有不变项

摆脱这个:

synchronized (UiApplication.getEventLock()) {
将其替换为以下内容:

UiApplication.getInstance().invokeLater(new Runnable{ public void run() {

您好,我已经用UiApplication.getInstance().invokeLater(新的可运行{public void run(){…)替换了synchronized(UiApplication.getEventLock()),但问题仍然存在。