0

我在 Eclipse 中有默认的 Android 项目布局。当前的版本带有“dummyText”和顶部的切换器。(我在向导期间选择了那个。)

我想使用顶部选择栏来切换屏幕。在主要、设置和结果之间。
如何检测当前活动?

因为..如果我有一个开关,比如:

switch (getArguments().getInt(ARG_SECTION_NUMBER)) { ... }  

如果当前屏幕是顶部选定的屏幕,它将进入无限循环。
(例如:值 1 = 主屏幕。你打开应用程序,它的值是 1。它在主屏幕上。它会一次又一次地无限期地打开主屏幕。如果你选择其他值,比如 2,它会转到正确的屏幕,它不会循环。)

我该如何解决这个问题?
(我正在用一个新的 Intent 打开另一个 Activity,然后我调用startActivityForResult(...).

更新 #1:
开关进入“DummySectionFragment”,它在onNavigationItemSelected.

看起来像这样:

Fragment fragment = new DummySectionFragment();
    Bundle args = new Bundle();
    args.putInt(DummySectionFragment.ARG_SECTION_NUMBER, position + 1);
    fragment.setArguments(args);
    getSupportFragmentManager().beginTransaction()
            .replace(R.id.container, fragment).commit();  

所以基本上这看起来是正确的......对我来说。开关被激活,相应的值被发送到 Dummy,并且开关可以正常工作以启动正确的 Activity。我只需要编写一个 if 语句,如果当前 Activity 与“待调用”匹配,则应用程序什么也不做。

我应该如何实现这个?
(我知道代码有点乱,怪罪谷歌它的样本。)

如果你不熟悉我使用的谷歌示例/代码,这里是
https ://gist.github.com/anonymous/4edaefa42dd1be96e6e4

这是“空白活动”->“下拉”之一。

4

1 回答 1

2

我认为您没有按预期使用示例。一种方法是将开关放在 中,并在其中根据所选项目onNavigationItemSelected启动正确的片段(而不是)。DummySectionFragment

所以这个示例是建立在 Fragments 之上的,你应该将它们用于不同的部分,而不是启动一个新的 Activity。

另一种方法是DummySectionFragment使用ARG_SECTION_NUMBER来决定要膨胀的布局,并为不同的部分膨胀不同的布局。在任何情况下,每个部分启动一个新活动都不是这个示例应该工作的方式。

编辑:这里是使用片段的好指南:

http://developer.android.com/training/basics/fragments/index.html

http://developer.android.com/guide/components/fragments.html

于 2013-04-24T12:51:28.710 回答