我正在尝试实施按钮点击以便能够更改活动的方向,但是,它将进入横向模式但不会回到纵向。
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不执行。什么似乎是问题?
答案 0 :(得分:0)
当一个活动被旋转时,它将被销毁并重新创建。当这种情况发生时,你将失去“国家”的价值。这将导致您永远不会点击其他选项,因为它始终返回到原始选项。
查看onSaveInstanceState()HERE。
然后,您可以在onCreate()方法中访问该包以检索该值。