使用onClick android更改方向

时间:2013-08-15 09:09:01

标签: java android orientation buttonclick

我正在尝试实施按钮点击以便能够更改活动的方向,但是,它将进入横向模式但不会回到纵向。

if(!state){
    setRequestedOrientation(MainActivity.SCREEN_ORIENTATION_LANDSCAPE);
}
else {
    setRequestedOrientation(MainActivity.SCREEN_ORIENTATION_PORTRAIT);
}
state = !state;

我读到的是,有state = false,当按下按钮时,更改方向,然后状态设置为true,此时如果再次按下该按钮,活动将变回横向。

我还读过关于使用开关的内容?但是我尝试实现它但是没有那么好,所以我尝试了这种方法。

修改

我已经实现了使用表面旋转,他们能够获得0或90的旋转

if (orientation==Surface.ROTATION_0)
{
    Toast.makeText(getBaseContext(), "going to landscape", Toast.LENGTH_LONG).show();
    setRequestedOrientation(MainActivity.SCREEN_ORIENTATION_LANDSCAPE);
}
else if (orientation==Surface.ROTATION_90)
{
    Toast.makeText(getBaseContext(), "going to portrait", Toast.LENGTH_LONG).show();
    setRequestedOrientation(MainActivity.SCREEN_ORIENTATION_PORTRAIT);
}

然而,当活动进入风景并且显示吐司时,当我尝试回到肖像时,吐司确实显示“去肖像”但是setRequestOrientation不执行。什么似乎是问题?

1 个答案:

答案 0 :(得分:0)

当一个活动被旋转时,它将被销毁并重新创建。当这种情况发生时,你将失去“国家”的价值。这将导致您永远不会点击其他选项,因为它始终返回到原始选项。

查看onSaveInstanceState()HERE

然后,您可以在onCreate()方法中访问该包以检索该值。