Adsenseバナー

2010年12月30日木曜日

Activity間を行ったり来たりするときのActivityの呼び方

例えば、「今僕たちに必要な買い物」では買い物リスト画面とカタログ編集画面はそれぞれ別Activityで作っていて、お互いボタンにより行き来が可能です。
つまり、買い物リスト画面(画面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 件のコメント:

コメントを投稿