В моем приложении я хочу показать экраны в соответствии с ориентацией. Я знал: всякий раз, когда устройство ориентировано, вызывается sublayout(). В соответствии с этой точкой зрения я пишу вот так:Изменить ориентацию экрана в Blackberry?
Здесь StartUp - другое имя класса;
Это мой LoadingScreen.java Класс;
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;
}
}
Я получаю экран в обоих режимах ориентации. Моя проблема заключается в том, что если я возьму один текстовый поле и введите что-то в режиме LANDSCAPE и ориентируется на режим PORTRAIT, данные исчезнут. Потому что я вызываю createGUI(); или orientGUI(); методы в sublayout().
Еще одна проблема, которую я получаю в Сенсорный экран:
Если я хочу, чтобы ввести текст в любом textboxField Он открывает «клавиатуру». Это не проблема. Главное, всякий раз, когда клавиатура открывает/скрывает оба раза, снова вызывает sublayout() этого класса. Поэтому я получаю обновленный экран.
Итак, есть ли другой способ получить ориентацию? Если это поможет мне.
Я не знаю, как перерисовать экран? – alishaik786
перерисовать я имею в виду «не удалять поля», просто сбросьте размеры кнопок, измените фоновое изображение, если у вас есть и т. Д. – rfsk2010