我想在每次用户更改手机方向时显示提醒。有一种方法来捕捉这种情况吗?
我使用Display.getOrientation();
。但它总是以不同的方向返回32。
答案 0 :(得分:3)
当方向发生变化时,您会收到sublayout()
的来电。您可以将displaywidth
保存到变量中,如果sublayout()
中的值已更改,则表示方向已更改。
protected void sublayout(int width, int height) {
if(Display.getWidth()==oldWidth)
{
//no change
}
else
{
// orientation changed
}
oldWidth = Display.getWidth();
super.sublayout(width, height);
}
答案 1 :(得分:0)
注意:当您检查方向时,您必须在9800模拟器中关闭SLIDER,否则它将无法正常工作
尝试以下代码:
public class checkOrientation
{
VerticalFieldManager manager;int ori;
public checkOrientation()
{
ori=Display.getOrientation();
manager=new VerticalFieldManager()
{
protected void sublayout(int maxWidth, int maxHeight) {
super.sublayout(Display.getWidth(),Display.getHeight());
setExtent(Display.getWidth(),Display.getHeight());
if(ori!=Display.getOrientation()){
UiApplication.getUiApplication().invokeLater(new Runnable() {
public void run() {
ori=Display.getOrientation();
Dialog.inform(""+Display.getOrientation());
}
});
}
}
};
add(manager);
}
}