java - 如何处理 Android 上的屏幕旋转

标签 java android android-activity listactivity screen-rotation

我有一个 ListActivity,我想在手机方向为纵向时显示它,并且我有另一个正常 Activity,我想在用户将手机旋转到横向模式时显示它。

一些代码:

  public class ListActivity extends ListActivity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        if (this.getResources (). getConfiguration (). orientation == Configuration.ORIENTATION_PORTRAIT) {
            //Do stuff
        }else if (this.getResources (). getConfiguration (). orientation == Configuration.ORIENTATION_LANDSCAPE) {
            Intent myIntent = new Intent(getApplicationContext(), AnotherActivity.class);
            startActivity(myIntent);
        }
    }
}

这种方法有效,但存在一些问题。还有更正确的方法吗?这种方法的问题是,当你旋转手机并按下返回按钮时,屏幕就会变黑,因为手机没有旋转。那么我是否应该以其他方式实现旋转,或者以某种方式修改后退按钮,以便用户无法返回到上一个 Activity?

最佳答案

这是正常的方式。但等待时间很长——5秒。

还有另一种方法:

将方向更改注册为配置更改

A.

activity android:name=".SomeActivity" 
android:label="@string/app_name"
android:configChanges="orientation"

并将其作为配置更改进行处理。

B.

@Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);
    setContentView(R.layout.main);

    SetupActivity();
}

关于java - 如何处理 Android 上的屏幕旋转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8120513/

相关文章:

Android dataBinding - 如何使用 bool 资源来触发布局的可见性

Android:将 Javascript 注入(inject) onPageFinished 事件之外的 Webview

java: 将文件解压成字符串太慢

java - <S extends T> 是什么意思保存(S实体);在 Spring 存储库中?

android - 当应用程序在 Google Play 中发布时,是否有办法收到通知?

android:layout_alignParentBottom ="true"改变Dialog Activity的高度从wrap_content到match_parent

Android:应用程序终止时刷新 sqlite 数据库

android - 如何在没有 Activity 的情况下在android中启动服务

Javacpp: liblept.4.dylib 库未加载

java - Eclipse/Maven 错误 : "No compiler is provided in this environment"