我正在使用适用于OS 5.0及更高版本的BlackBerry应用程序。该应用程序有一个屏幕,在屏幕顶部显示Next
和Previous
按钮。和列表字段也显示在这个按钮
当我点击NEXT Button
和Previous Button
时,我的列表会更新显示数据..
当我点击NEXT / PREVIOUS按钮时,我必须在屏幕中央用标签“Please wait ...”显示小的VerticalfieldManager,所以在设计完这个屏幕后,我们如何在另一个管理器中添加更多的现场管理器?
有没有办法在应用程序MainScreen上显示该字段,如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();
}
});
答案 0 :(得分:0)
这样做的正确方法是使用阻止对话框。在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
,当你需要显示消息时,你可以用标签填充它。这样,只刷新Manager,而不是更新整个屏幕。但是你应该编写逻辑,不要让用户按任何按钮或菜单键(或忽略按键)。