1

Android 4.0.3 で ActionBarSherlock を使用しているため、ネイティブの ActionBar を使用している可能性があります。

アプリケーションを起動すると、すべて正常に動作します。ただし、ホームスクリーンに移動して、それが殺されるまで待ち(または単にシステムフォントを変更すると、すぐに発生します)、「最後に使用した」ダイアログで再びアプリに切り替えると、アクションバーが現在持っていることを除いて、すべてがスムーズにリロードされます空のタブ。

したがって、タブはありますが、空です (そして機能しません)。奇妙なことに、アプリケーション オブジェクトでも 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);
        }
}

どのように見えるか: すべて OK 現在タブは空です

4

1 に答える 1

1

自力で解決できるようになりました。その理由は実にクレイジーです。上記のコードでは、s.displayName を使用してループ内のタブのラベルを設定しています。s は、StolScreen という Enum に属しています。

そこでは、displayName が Tools の呼び出しによって初期化されます (以前に初期化されています)。これにより、xml ファイルから表示名が取得されます。アクティビティに戻ったときに実際に起こっていたこと (そしてそのときだけ) は、ツールが初期化される前に、StolScreen が読み込まれたことでした (Enum では、フィールドは静的メンバーのように読み込まれます)。

したがって、空の文字列だけがタブに配置されました:D。とにかく、thx 4 ヘルプ ;)

于 2012-09-12T18:48:16.733 に答える