私はAndroid開発に不慣れです。向きの変更を使用して、2つのアクティビティを切り替えようとしています。私の考えは、3つのアクティビティを使用することです。1つはTabActivityで、もう1つは通常のアクティビティです。ここにいくつかの擬似コードがあります:
public class Main extends Activity{
// this is the entry point into my app
@Override
public void onCreate(...){
if(this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE){
// Start Activity1
} else { //Start Activity2}
}
アクティビティActivity1およびActivity2では、メインアクティビティを再開するために、onPause()関数がオーバーライドされます。
onPause(){
Intent intent = new Intent(this.ActivityX, Main.class);
startActivity(intent);
}
\/\/\/\/ 編集 \/\/\/\/
わかりました、私は別のアプローチを取っています。TabActivityが必要なので、タブでさまざまなアクティビティを開始できるようにしたいので(この場合、TabActivityを使用する必要があると思います)。
Manifest.xmlを編集し、TabActivityと2番目のアクティビティにandroid.configChanges="orientation"を追加しました。次に、onConfigurationChanged()関数をオーバーライドしました。このアプローチでは、横向き(これは「通常の」アクティビティ)から縦向き(TabActivity)に切り替えることができます。逆の方法は機能せず、理由はまだわかりません。まったく同じです。 onConfigurationChanged関数(コピー&ペースト)および重要な部分のみを変更しました。
タブで開始されたアクティビティのonConfigurationChangedをオーバーライドしても効果はありません。