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添加到应用程序主屏幕_Blackberry_Java Me - Fatal编程技术网

在BlackBerry中将field manager添加到应用程序主屏幕

在BlackBerry中将field manager添加到应用程序主屏幕,blackberry,java-me,Blackberry,Java Me,我正在使用适用于OS 5.0及更高版本的黑莓应用程序。该应用程序有一个屏幕,在屏幕顶部显示一个Next和一个Previous按钮。和列表字段也显示在这两个按钮底部的屏幕中 当我点击NEXT按钮和Previous按钮时,我的列表将更新显示数据 当我点击“下一步/上一步”按钮时,我必须在屏幕中央显示带有标签“请稍候…”的小型垂直现场管理器。因此,在设计此屏幕后,我们如何在另一个管理器上添加更多现场管理器 有没有办法像iPhone AppDelegate屏幕那样在应用程序主屏幕上显示该字段 btnSt

我正在使用适用于OS 5.0及更高版本的黑莓应用程序。该应用程序有一个屏幕,在屏幕顶部显示一个
Next
和一个
Previous
按钮。和列表字段也显示在这两个按钮底部的屏幕中

当我点击
NEXT按钮
Previous按钮
时,我的列表将更新显示数据

当我点击“下一步/上一步”按钮时,我必须在屏幕中央显示带有标签“请稍候…”的小型垂直现场管理器。因此,在设计此屏幕后,我们如何在另一个管理器上添加更多现场管理器

有没有办法像iPhone AppDelegate屏幕那样在应用程序主屏幕上显示该字段

btnState.setChangeListener(new FieldChangeListener() {

        public void fieldChanged(Field field, int context) 
        {   vfm_Middle.add(lblPleasewait);
            popup = new PopupScreen(manager);
            Thread thread = new Thread()
            {
                public void run() 
                {
                    try
                    {
                        Updatelistfield();
                        stop();
                    }
                    catch (InterruptedException e) 
                    {
                        e.printStackTrace();
                    }
                    super.run();
                }

                public synchronized void stop() 
                {
                    // TODO Auto-generated method stub
                    UiApplication.getUiApplication().invokeLater(new Runnable() {

                        public void run() 
                        {
                            // TODO Auto-generated method stub
                            //popup.delete(vfm_Main);
                            //popup.deleteAll();
                            //vfm_Main.delete(lblPleasewait);
                            //lblPleasewait.setText(null);

                        }
                    });
                }
            };

            thread.start();

        }
    });

正确的方法是使用阻塞对话框。在BB API中,这可以通过以下方式完成:

VerticalFieldManager manager = new VerticalFieldManager();
manager.add(new LabelField("Please Wait..."));
Screen popup = new PopupScreen(manager);
//Show the pop-up the same way you push a regular screen
这具有阻止GUI的优点:如果用户按下菜单或esc键,则不会产生任何效果


如果您希望在屏幕上不显示对话框,则可以添加一个空的
VerticalFieldManager
,当需要显示消息时,您可以在其中填充标签。这样,只刷新管理器,而不是更新整个屏幕。但是,您应该将逻辑写入不允许用户按下任何按钮或菜单键(或忽略按键)。

@vijay.jangid07我没有执行“请稍候…”管理器代码。。相反,屏幕上的其他编码实现成功。。我不知道如何将经理置于经理之上?您首先必须实现,然后提出问题。我已将此代码实现到我的下一个按钮单击事件,但我无法显示任何“经理”。。。它是否工作在ob按钮点击事件中?它在该屏幕的verticalFieldManager中工作。如何删除这个“弹出窗口”?我也可以点击屏幕的其他区域?如何在弹出窗口可见时禁用?要显示和删除弹出窗口,只需像常规屏幕一样执行
pushScreen
popScreen
。注意在事件线程中执行此操作(使用
UiApplication.invokeLater
UiApplication.invokeandWait
)。所以,在加载数据之前先显示弹出窗口,然后加载列表字段,然后从屏幕上删除弹出窗口。请检查我的更新代码。。。在run()方法中,我尝试了popup.close();但弹出窗口无法关闭,我得到错误:IIlegalstateException