Erstellen von ActionMode mit benutzerdefiniertem Layout in ActionBarSherlock

Ich habe gerade mit ActionBarSherlock begonnen, um eine einfache App zu erstellen. In meinem ersten Bildschirm habe ich eine einfache Liste und ich habe einen neuen Menüpunkt hinzugefügt, um der Liste einen neuen Punkt hinzuzufügen:

MenuItem newItem = menu.add("New");
newItem.setIcon(R.drawable.ic_compose_inverse)
    .setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);

Wenn der Benutzer ein neues Element hinzufügt, möchte ich einen neuen Aktionsmodus zum Hinzufügen eines neuen Elements starten. Dieser Aktionsmodus sollte ein einfaches Layout mit einem Textfeld und einer Schaltfläche enthalten. Daher habe ich dieses Layout erstellt:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">

        <EditText
            android:id="@+id/text"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:inputType="text" >
        </EditText>
        <Button
            android:id="@+id/addBtn"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/add" />
</LinearLayout>

Jetzt muss ich nur noch dieses Layout auf die Leiste im neuen Aktionsmodus setzen:

newItem.setOnMenuItemClickListener(new OnMenuItemClickListener() {
            @Override
            public boolean onMenuItemClick(MenuItem item) {
                actionMode = startActionMode(new MyAction(ListEditor.this));
                return true;
            }
        });

und in meiner Aktion:

private final class MyAction implements ActionMode.Callback {
    ...
    @Override
    public boolean onCreateActionMode(ActionMode mode, Menu menu) {
        View customNav = LayoutInflater.from(context).inflate(R.layout.add_item, null);
        getSupportActionBar().setCustomView(customNav);
        getSupportActionBar().setDisplayShowCustomEnabled(true);
        return true;
    }
}

Im Grunde brauche ich etwas zwischen ActionModes und CustomNavigation aus dem Sherlock-Beispiel, aber das Problem ist, dass das Layout auf die Hauptleiste und nicht auf die neue Leiste festgelegt wird, die für Aktionen geöffnet wird.

irgendwelche Vorschläge?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage