1

我在 Android 4.0.3 上使用 ActionBarSherlock,所以它可能使用原生的 ActionBar。

当我启动我的应用程序时,一切正常。但是,当我进入主屏幕并等到它被杀死(或者只是更改系统字体,然后它会立即发生)然后再次通过“上次使用”对话框切换到应用程序时,一切都会顺利重新加载,除了 Actionbar 现在有空标签。

所以选项卡在那里,但为空(并且不起作用)。奇怪的是,即使在 Application 对象中调用了 onCreate(如在 TabParentActivity 中,请参见下面的代码),所以理论上应用程序应该已经完全重新启动(而不仅仅是部分地像 onResume...)。

然后当我杀死我的应用程序(通过任务管理器)并重新打开它时,问题就消失了。

我如何在 TabParentActivity 中添加操作栏:

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_tab_parent);

        //Global initialization
        ...

        ActionBar ab = getSupportActionBar();
        // set defaults for logo & home up
        ab.setDisplayShowHomeEnabled(true);
        ab.setDisplayShowTitleEnabled(false);
        ab.setDisplayHomeAsUpEnabled(false);
        ab.setDisplayUseLogoEnabled(true);
        ab.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); 

...

for(StolScreen s: screensInTabs){
            Tab t = mAb.newTab().setText(s.displayName);
            t.setTabListener(new NormalTabListener(this.mActivity, s));
            mAb.addTab(t);
        }
}

它的样子: 一切正常 现在标签为空

4

1 回答 1

1

我现在能够自己解决它。原因真的很疯狂:在上面的代码中,我使用 s.displayName 在循环中设置了选项卡的标签。s 属于一个名为 StolScreen 的枚举。

在那里, displayName 通过调用 Tools(之前初始化)进行初始化,该调用从 xml 文件中检索显示名称。当我返回活动时(只有那时),现在实际发生的是在初始化工具之前加载了 StolScreen(在枚举中,字段像静态成员一样加载)。

所以只在标签上放了一个空字符串:D。无论如何,thx 4帮助;)

于 2012-09-12T18:48:16.733 回答