0

これは、Android3.0以降のみを対象とするアプリで使用しています。より多くの人を獲得したいのですが、ActionBarには下位互換性がありません。ActionBarSherlockのようなサードパーティのライブラリを使用したくありません。私はその道を進みました、そしてそれはそれが価値があったよりももっと苦痛でした。

私はこのようなコードを持っています:

final ActionBar actionBar = getActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
actionBar.setDisplayHomeAsUpEnabled(true);

これを--SDKチェックでラップすることは可能ifですelseか?アクションバー以外では、99%の他のコードが3.0より前に互換性があります(まあ、私はフラグメントを使用していますが、サポートライブラリを使用しています)。

4

4 に答える 4

4

はい、次のようなものです。

      @TargetApi(Build.VERSION_CODES.HONEYCOMB)
        private void setupActionBar() {
              if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
                 actionBar = getActionBar();
                 actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
                 actionBar.setDisplayHomeAsUpEnabled(true); 
                }           
        }

actionBar変数がグローバルであることを確認してください

于 2012-12-19T00:33:00.210 に答える
2

あなたはそのようなことをすることができます:

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
        final ActionBar actionBar = getActionBar();
        actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
        actionBar.setDisplayHomeAsUpEnabled(true);
    }
于 2012-12-19T00:34:37.653 に答える
0

はい。私はそれらをかなり広範囲に使用します。ただし、これはGoogle I / O 2012からご覧ください。これにより、さらに優れたプラクティスについての優れた洞察が得られます。

Build.VERSION.SDK_INTを使用して、バージョンをintとして取得できます。これを設定するのは簡単です:

final int version = Build.VERSION.SDK_INT;
ActionBar actionBar;

@TargetApi(Build.VERSION_CODES.HONEYCOMB)
    private void ABsetup() {
        if (version >= Build.VERSION_CODES.HONEYCOMB) {
            actionBar = getActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
actionBar.setDisplayHomeAsUpEnabled(true);          }
    }
于 2012-12-19T00:40:08.330 に答える
-1

もう1つのオプションは、アクションバーをAndroid 2.1(SDK 7)との下位互換性を持たせるActionBarSherlockを使用することです。

ここにリンク:http://actionbarsherlock.com/

于 2012-12-19T00:35:05.650 に答える