Zwei Aktionsleisten (Unten und Oben) gleichzeitig?

Ich muss zwei Aktionsleisten machen, ich benutze übrigens actionBarSherlock. Also, was ich genau brauche, ist, einen "Begrüßungsbildschirm" -Knopf in der normalen Aktionsleiste zu setzen und zwei normale ActionBar-Aktionsoptionen hinzuzufügen. Ähnlich wie hier sind Google Mail und Google Maps:http://cdn.androidcommunity.com/wp-content/uploads/2012/03/Screenshot_2012-03-28-12-58-16.png (Sie erlaubten mir nicht, ein Bild für die Reputation zu posten, siehe den Link bitte)

Diese Maps-App hat eine obere und eine untere Aktionsleiste, genau das, was ich brauche, denn sobald ich den Punkt erreicht habe, an dem ich die zweite Aktionsleiste hinzufügen kann, weiß ich, wo ich anfangen soll ...

Ich habe ungefähr eine Woche nach diesem Thema gesucht und ein paar ähnliche Fragen gefunden, aber ich habe keine der Antworten verstanden. Die Antworten handelten von einer benutzerdefinierten Ansicht, mit der ich (überhaupt) nicht vertraut bin und die ich nicht verstehen kann, aber ja, ich habe versucht, eine "benutzerdefinierte Ansicht" zu erstellen, von der ich dachte, dass sie richtig ist, und ich habe krasse Schachereien bekommen, die ich nicht gemacht habe finde keine Lösung für ... Wenn Sie mir als Beispiel diese Maps-App zeigen dürfen, wie ist es mit diesen beiden Aktionsleisten? (Ich möchte nicht wie in Google Maps und Google Mail navigieren, sondern nur die beiden Aktionsleisten.)

Hier ist ein Teil meines Codes:

//Part of my MainActivity.class
public boolean onCreateOptionsMenu(com.actionbarsherlock.view.Menu menu) {
        MenuInflater inf = getSupportMenuInflater();
        inf.inflate(R.menu.upper_navbar, menu);

        final String name = "welcome";
        final SharedPreferences pref = getSharedPreferences(name, 0);
        final Editor edit = pref.edit();
        boolean oldState = pref.getBoolean("w", true);
        ToggleButton tog = (ToggleButton) menu.findItem(R.id.welcome_screen).getActionView();
        if(oldState){
            tog.setChecked(true);

        }else{
            tog.setChecked(false);
        }

        tog.setOnCheckedChangeListener(new OnCheckedChangeListener() {



            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                if(isChecked){
                    edit.putBoolean("w", true);
                    edit.apply();
                }else{
                    edit.putBoolean("w", false);
                    edit.apply();
                }


            }
        });
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {

    return super.onOptionsItemSelected(item);
    }

Mein Manifest:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="seaskyways.editpad"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="9"
        android:targetSdkVersion="16" />

    <application
        android:allowBackup="true"
        android:name="android.app.Application"
        android:icon="@drawable/ic_launcher"
        android:uiOptions="splitActionBarWhenNarrow"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="seaskyways.editpad.MainActivity"
            android:label="MainActivity" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name="seaskyways.editpad.Splash"
            android:theme="@style/Theme.Sherlock.Dialog.NoActionBar"


            android:label="Splash" >
            <intent-filter>
                <action android:name="android.intent.action.SPLASH" />

                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>
    </application>

</manifest>

Und meine Menüs, die ich in meine Aktionsleisten einfügen möchte ...

menu \ activity_main.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android" >


    <item android:id="@+id/bottom_copy"  android:title="Copy" android:orderInCategory="3" android:showAsAction="ifRoom|withText" />
    <item android:id="@+id/bottom_paste" android:title="Paste" android:orderInCategory="2" android:showAsAction="ifRoom|withText" />

</menu>

menu \ upper_navbar.xml (hätte upper_actionbar heißen sollen, aber es ist nur ein Denkfehler, es ist immerhin ein Name: / plz continue)

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >

     <item
        android:id="@+id/welcome_screen"
        android:orderInCategory="1"
        android:showAsAction="ifRoom|withText"
        android:title="Welcome Screen"
        android:actionLayout="@layout/toggle"

        />

</menu>

Wenn Sie weitere Informationen benötigen, sagen Sie es mir bitte, ich werde es Ihnen sagen, es ist für mich und alle anderen!

BEARBEITEN !!! : Ich fand ein sehr nahes Beispiel für meine Frage, die WLAN-Einstellungen (http://omgdroid.com/wp-content/uploads/2012/07/Screenshot_2012-07-06-01-34-29-576x1024.png) Es benutzt einen Schalter in der normalen Aktionsleiste und eine normale geteilte Aktionsleiste nach unten! Genau das was ich brauche!

EDIT 2 !!!! : Hier ist ein Screenshot von meinem Galaxy Nexus, der ein benutzerdefiniertes ROM verwendet, das auf aosp basiert. Dies ist genau das, was ich brauche und meine:

Einstellungen-Wifi:https://lh4.googleusercontent.com/-aeL_sHjIcQQ/UPVptGQiuqI/AAAAAAAAAGE/UGc-CuLP4Qw/s512/Screenshot_2013-01-15-16-36-32.png

Einstellungen-Bluetooth: lh3 * googleusercontent.com / -4j6ca1Nm1VI / UPVqAiDn_PI / AAAAAAAAAGM / LLB2ILWVjQY / s512 / Screenshot_2013-01-15-16-38-14.png

EDIT 3 !!! : Große Fortschritte bei meinen Nachforschungen zu Bluetooth und WLAN, und wie gesagt und gefragt, waren sie echte Aktionsleisten! Sehen Sie, was ich in Einstellungen-Bluetooth bekommen habe:

BluetoothSettings.class / onCreateOptionsMenu:

@Override
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
        if (mLocalAdapter == null) return;
        boolean bluetoothIsEnabled = mLocalAdapter.getBluetoothState() == BluetoothAdapter.STATE_ON;
        boolean isDiscovering = mLocalAdapter.isDiscovering();
        int textId = isDiscovering ? R.string.bluetooth_searching_for_devices :
            R.string.bluetooth_search_for_devices;
        menu.add(Menu.NONE, MENU_ID_SCAN, 0, textId)
                .setEnabled(bluetoothIsEnabled && !isDiscovering)
                .setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
        menu.add(Menu.NONE, MENU_ID_RENAME_DEVICE, 0, R.string.bluetooth_rename_device)
                .setEnabled(bluetoothIsEnabled)
                .setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER);
        menu.add(Menu.NONE, MENU_ID_VISIBILITY_TIMEOUT, 0, R.string.bluetooth_visibility_timeout)
                .setEnabled(bluetoothIsEnabled)
                .setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER);
        menu.add(Menu.NONE, MENU_ID_SHOW_RECEIVED, 0, R.string.bluetooth_show_received_files)
                .setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER);
        super.onCreateOptionsMenu(menu, inflater);
    }

Dies können Optionen sein, die in der splitActionBarDown mit den genauen Eigenschaften ...

jetzt :

BluetoothSettings.class / addPreferencesForActivity:

@Override
    void addPreferencesForActivity() {
        addPreferencesFromResource(R.xml.bluetooth_settings);

        Activity activity = getActivity();

        Switch actionBarSwitch = new Switch(activity);

        if (activity instanceof PreferenceActivity) {
            PreferenceActivity preferenceActivity = (PreferenceActivity) activity;
            if (preferenceActivity.onIsHidingHeaders() || !preferenceActivity.onIsMultiPane()) {
                final int padding = activity.getResources().getDimensionPixelSize(
                        R.dimen.action_bar_switch_padding);
                actionBarSwitch.setPadding(0, 0, padding, 0);
                activity.getActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM,
                        ActionBar.DISPLAY_SHOW_CUSTOM);
                activity.getActionBar().setCustomView(actionBarSwitch, new ActionBar.LayoutParams(
                        ActionBar.LayoutParams.WRAP_CONTENT,
                        ActionBar.LayoutParams.WRAP_CONTENT,
                        Gravity.CENTER_VERTICAL | Gravity.END));
            }
        }

        mBluetoothEnabler = new BluetoothEnabler(activity, actionBarSwitch);

        setHasOptionsMenu(true);
    }

Beachten Sie, dass diese Klasse Activity nicht erweitertextends DeviceListPreferenceFragment ...

Jetzt wo wir es wissenes ist möglich um zwei actionbars (split und normal) gleichzeitig zu haben, brauchen wir eine möglichkeit das zu vereinfachen, vielleicht durch eine klasse oder bibliothek ??

Antworten auf die Frage(3)

Ihre Antwort auf die Frage