Android 方向改变时不显示烤面包片为什么。。?

Android 方向改变时不显示烤面包片为什么。。?,android,layout,orientation,toast,Android,Layout,Orientation,Toast,我展示了两个不同方向上的不同布局 在这两篇文章中,我都在为方向改变的信息干杯 它在肖像中显示在吐司中,但在风景中不显示为什么 public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Display display = ((WindowManager) getSystemSe

我展示了两个不同方向上的不同布局

在这两篇文章中,我都在为方向改变的信息干杯

它在肖像中显示在吐司中,但在风景中不显示为什么

public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        Display display = ((WindowManager) getSystemService(WINDOW_SERVICE)).getDefaultDisplay();
        System.out.println("Initial Oriatation is "+display.getOrientation());
        int oriatation = display.getOrientation();
        if(oriatation == 0){
            Toast.makeText(getApplicationContext(), "Changed", Toast.LENGTH_SHORT)
            .show();
            createPort();
            resumePort();
        }else if(oriatation == 1){
            Toast.makeText(getApplicationContext(), "Changed", Toast.LENGTH_SHORT)
            .show();
            createLand();
            resumeLand();
        }
}
提前谢谢

a根据,
Display.getOrientation()
不推荐使用,建议改用
getRotation()
。但是,查看
getRotation()
返回的值,我假设
getOrientation()
可能会返回类似的结果,所以请尝试不仅检查0和1,还检查2和3,看看会发生什么

编辑而不是
else如果(oriatation==1)
使用

else if(oriatation % 2 == 1) // or `else if(oriatation == 1 || oriatation == 3)`

当我第一次在android2.3.1(API-9)中运行这个程序时,有一件奇怪的事情发生在我身上,我得到了“改为纵向”(我将“改为”改为“改为纵向”和“改为横向”)。当我将屏幕方向从纵向改为横向时,我得到了“改为横向”但是当我再次改变方向来描绘模拟器时,会再次显示消息“Changed to Landscape”。现在它一直显示“Changed to Landscape”。我在谷歌上搜索了这个问题,发现当我们改变屏幕活动的方向时,它的初始状态会松动,并更改为下一个状态,因此,我们必须保持屏幕的初始状态,才能再次看到Toast消息“更改为纵向”。
有一个班级帮助我们维持现状。所以试试看,希望它能解决你的问题

您需要实现onConfigurationChanged方法,该方法将在方向改变时检测

为了确保您的活动调用此功能,您需要在清单中指定android:configChanges=“orientation | screenSize”

然后,在onConfigurationChanged方法中,您可以有如下内容:

 if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
        Toast.makeText(this, "landscape", Toast.LENGTH_SHORT).show();
 } else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){
        Toast.makeText(this, "portrait", Toast.LENGTH_SHORT).show();
 }

有关更多信息,请参阅。

之前我在log cat中打印了这些值,以便在改变方向时查看其值。。它只给出0和1。getRotation()来自API级别8,但我在API级别7下开发,@Noby这就是为什么我没有建议使用
getRotation()
=)我实际上已经尝试过了,
getOrientation()
返回1表示逆时针90度,返回3表示顺时针90度。我不明白我做错了什么,解决方案是什么。。你能给我详细解释一下吗。。?