2012-02-22 7 views
0

私はAndroid Appに奇妙な効果があります。戻るボタンがTabGroupActivityとViewSwitcherで期待どおりに動作しない

私はタブごとにTabGroupActivitiesを持つTabHosterを使用します。戻るボタンの振る舞いを除き、かなりうまくいきます。

アクティビティが起動され、[戻る]ボタンに応答します。次に、私はViewSwitcherで子アクティビティを開始します。私がビューAで戻るボタンを押すと、アクティビティは期待通りに終了します。しかし、私の活動のonBackPressed()を通過します。

私がビューB(detailView == true)の戻るボタンを押すと、メソッドは呼び出されません。代わりに、TabGroupActivityのonBackPressed()が呼び出され、最初のビューに戻ることができません。

@Override 
public void onBackPressed() { 
    if (detailView == true){ 
     vf.showPrevious(); 
     detailView = false; 
    } 
    else { 
     super.onBackPressed(); 
    } 
return; 
} 

誰でもこれを説明したり、アクティビティグループのアクティビティでビューを切り替える方法を教えてもらえますか?

+0

タブでのアクティビティのグループ化は推奨されていないため、使用しないでください。そのバギー、醜いと非常に良い仕事をしたことはありません。代わりにフラグメントを使用し、FragmentTransaction.replace()でそれらの間を切り替えます。 onbackPressedでpopbackstackを呼び出すと、フラグメントのバックスタック処理が戻ります。あなたの質問にはあまり答えていないので、コメントとして追加しました。 –

+0

あなたは正しいと確信していますが、フラグメントはAndroid 3.0(APIレベル11)で導入されており、それはユーザーの80%以上を残してしまいます。 [ソース](http://gigaom.com/mobile/android-fragmentation-not-so-bad-says-localytics/)それはオプションではないので。 –

+0

実際にはオプションではありません。 Android 1.5以降をターゲットとするアプリケーションには、正式なサポートパッケージがバックポートされているので、フラグメントを使用することができます。 Se http://developer.android.com/sdk/compatibility-library.html。ただ瓶を入れて、FragmentActivityを拡張してお楽しみください! –

答えて

0

数日後、私はViewSwitchingのものを捨てて別のアクティビティに転送するのが最も簡単な解決策だと結論に達しました。

Sebastian Olssonは必ずフラグメントを正しく扱いますが、私の特定のアプリケーションがすべてをフラグメントに再構築するためにはもっと努力する必要があります。

関連する問題