当方向改变时,Toast不显示为什么..?

时间:2011-11-07 12:07:28

标签: android layout orientation toast

我在不同的方向上显示两种不同的布局。

我两个人都在烘烤一个方向改变的消息。

它在纵向中呈现吐司而在风景中不显示为什么..?

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();
        }
}

提前致谢...!

3 个答案:

答案 0 :(得分:1)

您需要实现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();
 }

有关详细信息,请参阅http://developer.android.com/guide/topics/resources/runtime-changes.html

答案 1 :(得分:0)

根据docDisplay.getOrientation()已被弃用,建议改为使用getRotation()。但是,查看docgetRotation()返回值,我认为getOrientation()可能返回类似的结果,因此请尝试检查0和1,但同样检查2和3,并查看会发生什么。

修改而非else if(oriatation == 1)使用

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

答案 2 :(得分:0)

当我第一次在android2.3.1(API-9)中运行这个程序时,我发生了一件奇怪的事情我得到了“更改为肖像”的toast msg(我将“已更改”更改为“已更改为肖像” “和”更改为横向“。)当我将屏幕的方向从纵向更改为横向时,我得到”更改为横向“,但当我再次将方向更改为纵向时,模拟器再次向msg”更改为横向“状态。现在它一直显示“改变为景观”。我搜索了问题并发现当我们改变屏幕活动的方向松开其初始状态并改变到下一个状态时,我们必须保持初始状态屏幕再次看到Toast msg“Changed to Portrait”。 有一个班SharedPrefrences帮助我们维持状态。所以希望它能解决你的问题。