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