В моем приложении я хочу показать экраны в соответствии с ориентацией.Я знал, что всякий раз, когда устройство ориентировано, вызывается метод sublayout () текущего экрана.В соответствии с этой точкой зрения я пишу так:
Здесь StartUp - другое имя класса;
Это мой LoadingScreen.java Class;
public class LoadingScreen extends MainScreen
{
public LoadingScreen()
{
createGUI();
}
protected void sublayout(int width, int height)
{
StartUp.screenOrientation();
if(StartUp.isLandscape)
{
deleteAll();
createGUI();
invalidate();
}
else
{
deleteAll();
orientGUI();
invalidate();
}
super.sublayout(width,height);
}
public void createGUI()
{
//For LANDSCAPE Display;
}
public void orientGUI()
{
//For PORTRAIT Display;
}
}
Метод screenOrientation () таков:
public static void screenOrientation()
{
if(Display.getOrientation()==Display.ORIENTATION_LANDSCAPE)
{
isLandscape=true;
width=480;
height=360;
}
else
{
isLandscape=false;
width=360;
height=480;
}
}
Я получаю экран в обоих режимах ориентации.Моя проблема в том, что если я возьму одно поле textboxField и введу что-либо в режиме LANDSCAPE и в ориентацию в режим PORTRAIT, данные исчезнут.Потому что я звоню createGUI ();или orientGUI ();методы в sublayout () .
Еще одна проблема, с которой я сталкиваюсь на сенсорном экране:
Если я хочу ввести текст в любом текстовом поле, поле открывает «клавиатуру».Это не проблема.Главное, чтобы клавиатура открывалась / скрывалась снова и снова, вызывая sublayout () этого класса.Итак, я получаю обновленный экран.
Итак, есть ли другой способ получить ориентацию?Если это так, помогите мне.