2011-08-11 5 views
1

私はアプリケーションを最初に表示して、成功したログイン時に3つのタブを持つタブビューに変更します。各タブにはさまざまなアクティビティが含まれています。私がタブの間で切り替えると、戻るボタンがログイン画面の代わりに前のタブに戻るようにします。タブ間に戻るボタンスイッチを作る方法

どうすればよいですか?私は、タブビューでonBackPressedを実装し、タブスタックを手動で覚えていると考えていますが、それが正しいアプローチではないと思います。

答えて

3

たとえば、Main.javaという名前のクラスでタブを作成したとします。次のようなメソッドを作成します。

public void switchTab(int tab) { 
     tabHost.setCurrentTab(tab); 
    } 

現在のタブが変更されます。ナビゲーションを変更するアクティビティの次のコードでは、次のコードを挿入します。

@Override 
public void onBackPressed() { 
    Main m = (Main)getParent(); 
    m.switchTab(0); 
} 

これは動作するはずです。

+0

これは、onBackPressedがメインアクティビティでオーバーライドされるべきであることを除いて、私が考えたアプローチとほぼ同じです。この例では常に最初のタブにジャンプし、前のタブにジャンプしたいと考えました。ですから、TabHostが自動的にそれを管理できるかどうか手動でタブの "履歴"をスタックに保持する必要があるのか​​どうか疑問に思っていたのです。 – Niels

+0

あなたは手動で行う必要があります。最も簡単な方法はArrayList またはこれを作成し、onBackPressed()メソッドで最後の要素を削除することです。 – Seraphis

関連する問題