方向重置 activity Android

orientation reset activity Android

每次我打开 phone 横向模式时,我的 activity 都会重置。 如何阻止 activity 重置?

这是我尝试使用的代码,但它不起作用。

    @Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);

    if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
        setContentView(R.layout.get_msg);

    } else {
        setContentView(R.layout.get_msg);
    }
}

清单文件:

android:configChanges="orientation|keyboardHidden|screenSize"

这里是 link 我从哪里得到它:

prevent activity restarting when orientation changes

改变这个

@Override
    public void onConfigurationChanged(Configuration newConfig) {
        // TODO Auto-generated method stub
        super.onConfigurationChanged(newConfig);
        if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
            System.out.println("this's landscape");

        } else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){
            System.out.println("this's portrait");
        }
    }

在 androidMainifest.xml 中设置 android:configChanges="orientation|keyboardHidden|screenSize" 将防止 activity 重置,只是 onConfigurationChanged() 将被执行,您的参考是支持两种布局的句柄,它不适合您在此处使用的 application.onConfigurationChanged() 重新加载布局,因此 activity 不会重置,只是您的布局重置。

另一种方式:

String text;
@Override
 protected void onCreate(Bundle savedInstanceState) 
 {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);

  int rotation = getWindowManager().getDefaultDisplay().getRotation();
        if(rotation == 0)
            text="Portrait";
        else
            text="Landscape";
}