2011-11-14 71 views
0

我有一個ListActivity,當手機的方向是縱向時我要顯示,並且我有另一個正常的活動,當用戶將手機旋轉到橫向模式時,我想顯示該活動。如何處理Android上的屏幕旋轉

一些代碼:

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

這種方法有效,但也存在一些問題。有沒有更正確的方法?這種方法的問題在於,當您旋轉手機並按下後退按鈕時,屏幕會變黑,因爲手機未旋轉。那麼我應該以另一種方式實現輪換,還是以某種方式修改後退按鈕,以便用戶不能返回到前一個活動?

+0

您好!你已經得到了答案,所以請選擇他們或他們中的一些人或其中的一個人作爲答案。其他方面它不禮貌:-( – Gangnus

+0

對不起,您的評論不是我正在尋找的,但我設法以另一種方式解決它。你說的是正確的,所以我將它標記爲答案。 – Sane

回答

1

這是一種正常的方式。但它很長 - 等待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(); 
}