2013-03-26 1 views
38

getActionView() für Aktionsleiste wurde in API 11 eingeführt, Wenn ich Rückwärtskompatibilität will, was ist die Alternative für getActionView()?Was ist die Alternative zu getActionView() vor API Level11 in Android?

z.B.

public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.action_bar_menu, menu); 

    final MenuItem item = menu.findItem(R.id.menuitem); 
    item.getActionView() //Works from API level 11 

    return true; 
} 
+0

was genau wollen Sie erreichen? –

+0

Ich muss click listener auf actionItemLayout setzen, dafür muss ich einen Verweis auf die actionView bekommen. – sat

+0

Bitte geben Sie auch Ihre menu.xml .AFAIK actionView und actionLayout sind beide in API 11, also hat es keinen Sinn, eine kompatible 'getActionView()' zu haben. –

Antwort

13

Für Abwärtskompatibilität können Sie entweder ActionBarCompat oder ActionBarScherlock. In beiden Fällen können Sie die Methode getActionView(). verwenden. Sie müssen sicherstellen, dass der Import im ersten Fall aus der Kompatibilitätsbibliothek stammt (android.support.v4.view.MenuItemCompat). Wenn Sie ActionBarSherlock verwenden, müssen Sie import com.actionbarsherlock.view.MenuItem. Dann sollten Sie mit item.getActionView() in Ordnung sein.

Old

Seit August 2013, und ich bete, Leute unten stimmrechts einen Blick zu nehmen. Sie müssen sicher sein, dass das Fragedatum des OPs, das im ersten Fall eingeführt wurde, von der Kompatibilitätsbibliothek stammt (ActionBarCompactandroid.support.v4.view.MenuItemCompat). Obwohl wenn Sie ActionBarSherlock verwenden, immer noch eine gültige Option ist, wird eine Option in Richtung ActionBarCompact verschoben.

Also eine andere Option ist es zu verwenden, und natürlich müssen alle importsyou kommen aus der Support-Bibliothek, z. android.supportimport com.v4actionbarsherlock.view.MenuItemCompatMenuItem. Dann sollten Sie mit item.getActionView() in Ordnung sein.

55
@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.main_activity_actions, menu); 
    MenuItem searchItem = menu.findItem(R.id.action_search); 
    SearchView searchView = (SearchView) MenuItemCompat.getActionView(searchItem); 
    // Configure the search info and add any event listeners 
    ... 
    return super.onCreateOptionsMenu(menu); 
} 

Siehe http://developer.android.com/guide/topics/ui/actionbar.html für Details

+0

Super! Ich verbringe 2 Stunden, um das zu finden: P –

+0

Ehrfürchtig. Rettete mir einen Haufen !!! – sammyukavi

Verwandte Themen