2

我在 Google Play 上发布了一个相当大的、已经发布的铁路时刻表应用程序,现在我也计划整合公共汽车时刻表。我的问题是这样的:

  • 目前,每当应用启动时,它都会加载 Activity,您可以在其中搜索火车,我们称之为 A
  • 我已经实现了公交搜索活动的测试版,我们称之为 B
  • 最终,我会想出一个混合解决方案,它可以同时搜索火车和公共汽车,当然有一些限制,我们称之为 C

现在,我想实现主屏幕,使其具有可滑动的选项卡,选项卡将是 A、B 和 C。我从未真正使用过这些选项卡,所以我的知识不是那么深,但是,我来了提出一个解决方案,这确实可行,但它需要大量的重新编码(请记住,我的应用程序是在一年前发布的),因为我从来没有真正为碎片做好准备。我正在做件事,而且效果非常好。但是,这意味着主屏幕应该是一个FragmentActivity,这很好,我可以处理。但我不能提供 A、B 和 C 活动,作为选项卡,它只接受片段。

问题是:我可以将我已经编码的 Activity 作为片段进行补充,以便我可以在它们之间滑动吗?有没有我不知道的包装机制?还有其他解决方案,您可以告诉我吗?只要给我指个方向,剩下的交给我。或者,我是不是该死,必须从头开始重新编码所有内容?没问题,如果是这样的话,我很乐意避免它。

提前谢谢,干杯。:)

4

3 回答 3

1

您可以做的是将您的片段包装在一个活动中。如果您的活动中包含多个类,这将是更好的选择。否则,我会选择wangyif2 的建议

无论如何,如果你想做前者:

public class SampleActivity extends Activity {
  ...

  public static class SampleFragment extends Fragment {
    ...

  }
}

当您最终在 ActionBar 中初始化所有这些时

final ActionBar bar = getActionBar();
bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

bar.addTab(bar.newTab()
            .setText("Sample")
            .setTabListener(new TabListener<SampleActivity.SampleFragment>(
                    this, "sample", SampleActivity.SampleFragment)));

我建议从 API 14+ 示例中查看 API Demo。FragmentTabs (com.example.android.apis.app.FragmentTabs) 中有一个很好的例子。

于 2013-04-23T17:28:50.507 回答
1

谢谢你们的建议,我确实尝试了wangyif2建议的方法,它在代码中产生了太多的开销,因为我做了一些具体的事情。

我将查看一些演示,但我想我会从头开始重新编码所有内容,这似乎是目前最干净的解决方案。

于 2013-04-25T10:58:10.693 回答
0

代替原来的 Activity A、B、C 扩展 SherlockActivity,只需将它们更改为扩展 SherlockFragments,并将它们提供给选项卡。

显然,您必须修复一些编译错误,即活动生命周期和片段生命周期之间的差异,但是一旦修复它们,您就可以开始了。

于 2013-04-23T16:57:54.157 回答