つまり、買い物リスト画面(画面A)にはカタログ編集ボタンがあって、それを押せばカタログ編集画面(画面B)に移る。
カタログ編集画面(画面B)には買い物リストボタンがあって、それを押せば買い物リスト画面(画面A)に移る。
そこで、「メニュー→画面A→画面B→画面A→画面B→画面A→…」と、交互に繰り返し画面を切り替えたとき、Backキーを押したらどうなるのが一番自然でしょうか。
「…→画面A→画面B→画面A」の状態で、Backキーを押していくと、次のようになってほしいと僕は思います。
「メニュー←画面B←画面A」
でも、デフォルトのままだと「メニュー←画面A←画面B←…←画面A←画面B←画面A」になります。
これは良くないということで、いろいろ調べて試したところ、次のようにしてIntentにフラグを追加すればいいということがわかった。
intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
Intentにフラグを追加することで画面遷移の仕方を制御可能で、上述のような遷移はFLAG_ACTIVITY_REORDER_TO_FRONTで実現できます。
これは、すでに存在するActivityを呼び出したときは、履歴スタックの一番上に持ってくるといった動きをします。
存在しない場合は、新しくActivityを作り、やはり履歴スタックの一番上にセットします。
ネットで検索したとき、この情報があまりなかったので、それほど使われてないのでしょうか?
僕は一番自然だと思うのですが。。。
0 件のコメント:
コメントを投稿