17

アクションバーを備えたAndroidアプリケーションメニューに取り組んでいます。Googleマップアプリケーションにあるようなアクションバーにドロップダウンメニューを配置したいと考えています。 Google マップ アクションバー

誰か助けてくれませんか?これを達成する方法 私が従うことができるいくつかの簡単なチュートリアルを指摘してください。

4

2 に答える 2

11

これをアクティビティの onCreate() メソッドに追加します。

// Adapter
SpinnerAdapter adapter =
        ArrayAdapter.createFromResource(this, R.array.actions,
        android.R.layout.simple_spinner_dropdown_item);

// Callback
OnNavigationListener callback = new OnNavigationListener() {

    String[] items = getResources().getStringArray(R.array.actions); // List items from res

    @Override
    public boolean onNavigationItemSelected(int position, long id) {

        // Do stuff when navigation item is selected

        Log.d("NavigationItemSelected", items[position]); // Debug

        return true;

    }

};

// Action Bar
ActionBar actions = getActionBar();
actions.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
actions.setDisplayShowTitleEnabled(false);
actions.setListNavigationCallbacks(adapter, callback);

この例では、リスト アイテムの配列リソースが必要です。

res/values/arrays.xml

<string-array name="actions">
    <item>Item 1</item>
    <item>Item 2</item>
    <item>Item 3</item>
</string-array>

または、SpinnerAdapter から拡張された独自のアダプターとレイアウトを作成して、より高度なまたは動的なリスト項目を表示することもできます。

アクティビティ onCreate コードをさらにきれいにするために、アクティビティを変更して OnNavigationListener を実装し、コールバック コードでオーバーライド onNavigationItemSelected を追加することもできます。次に、setListNavigationCallbacks() メソッドで「callback」を「this」に変更します。

アクション バーの API 11+ をターゲットにする必要があることに注意してください。それ以外の場合は、バージョン チェックまたはサポート ライブラリを追加する必要があります。

于 2014-01-27T11:21:54.893 に答える