2013-03-26 8 views
38

getActionView() dla paska działań został wprowadzony w API 11, jeśli chcę kompatybilność wsteczną, co jest alternatywą dla getActionView()?Jaka jest alternatywa dla getActionView() przed API level11 w systemie Android?

np.

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

co dokładnie chcesz przez to osiągnąć? –

+0

Potrzebuję ustawić detektor kliknięcia na actionItemLayout, ponieważ muszę uzyskać odwołanie do actionView. – sat

+0

proszę również podać plik menu.xml. AFAIK actionView i actionLayout są wbudowane w API 11, więc nie ma sensu posiadanie kompatybilnego 'getActionView()'. –

Odpowiedz

13

Dla kompatybilności wstecznej można używać zarówno ActionBarCompat lub ActionBarScherlock. W obu przypadkach można użyć metody getActionView(). Musisz mieć pewność, że import, w pierwszym przypadku jest z biblioteki kompatybilności (android.support.v4.view.MenuItemCompat). Jeśli używasz , musisz użyć ActionBarSherlock, aby uzyskać import com.actionbarsherlock.view.MenuItem. Wtedy powinieneś być w porządku używając item.getActionView().

Old

Od sierpnia 2013 roku, i modlę się ludzi w dół głosowania przyjrzeć. Musisz mieć pewność, że data importu daty OP, Android wprowadzony w pierwszym przypadku pochodzi z biblioteki kompatybilności (ActionBarCompactandroid.support.v4.view.MenuItemCompat). Mimo że użycie ActionBarSherlock jest nadal prawidłowym wyborem, opcja zmierza w kierunku ActionBarCompact.

Więc inną opcją jest użycie go i oczywiście wszystkie importy muszą pochodzić z biblioteki wsparcia, np. android.supportimport com.v4actionbarsherlock.view.MenuItemCompatMenuItem. Wtedy powinieneś być w porządku używając item.getActionView().

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); 
} 

Zobacz http://developer.android.com/guide/topics/ui/actionbar.html szczegółowe informacje

+0

Super! Spędzam 2 godziny, aby to znaleźć: P –

+0

Awesome. Uratowałeś mi bandę !!! – sammyukavi

Powiązane problemy