2012-02-22 78 views
0

我在我的Android应用程序的一些奇怪的效果。后退按钮按预期工作不TabGroupActivity和ViewSwitcher

我用TabGroupActivities每个标签有TabHoster。除Back按钮的行为以外,其他作品都很不错。

活动是启动和响应后退按钮。然后我用ViewSwitcher开始一个儿童活动。当我在视图上点击“后退”按钮时,活动按预期解除。但它得到通过我的活动的onBackPressed()

当我打在视图B后退按钮(的DetailView ==真)的方法也都不调用。取而代之的是,TabGroupActivity的onBackPressed()被调用,我不能切换回第一视图。

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

任何人都可以解释和/或告诉我如何在一个的ActivityGroup的作业视图之间切换?

+0

在标签分组活动,已被弃用,不应该使用。它的越野车,丑陋,从来没有很好的工作。改用碎片并用FragmentTransaction.replace()在它们之间切换。片段堆栈中的处理会帮助你,如果你在onBackPressed叫popbackstack切换回。我添加了这个作为评论,因为它不完全回答你的问题。 – 2012-02-22 15:42:57

+0

我敢肯定你是对的,但片段已经推出了采用Android 3.0(API等级11),并且将离开用户的80%以上了。 [源(http://gigaom.com/mobile/android-fragmentation-not-so-bad-says-localytics/)所以这不是一个选项。 – 2012-02-23 07:56:09

+0

它不会,它实际上是一个选项。您可以使用适用于Android 1.5及更高版本的应用的片段,因为有官方支持包可以将它们反向移植。 Se http://developer.android.com/sdk/compatibility-library.html。只需包括jar,扩展FragmentActivity并享受! – 2012-02-23 08:21:19

回答

0

几天后,我来到了,这是我的情况最简单的解决扔掉ViewSwitching的东西,转移他们单独活动的结论。

塞巴斯蒂安·奥尔森与片段确实正确,但是这将是我的具体应用来重建一切碎片更多的努力。