0

電話の向きが縦向きのときに表示したいListActivityがあり、ユーザーが電話を横向きモードに回転させたときに表示したい別の通常のアクティビティがあります。

いくつかのコード:

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

このアプローチは機能しますが、いくつかの問題があります。もっと正しい方法はありますか?この方法の問題は、電話を回転させて戻るボタンを押すと、電話が回転していないため、画面が真っ暗になることです。では、別の方法でローテーションを実装する必要がありますか、それともユーザーが前のアクティビティに戻れないように戻るボタンを変更する必要がありますか?

4

1 に答える 1

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();
}
于 2011-11-14T11:04:18.257 に答える