2013-09-02 14 views
6

Próbuję wdrożyć element SearchView ActionBar, jak mówią programiści Android, ale mam pewne problemy. (http://developer.android.com/guide/topics/ui/actionbar.html).Uzyskiwanie SearchView z MenuItemCompat (Android)

Są dwa błędy, mimo że dużo szukałem, nie byłem w stanie znaleźć rozwiązania.

1) Mam problem z klasą MenuItemCompat. Mówi: Sposób getActionView (MenuItem) nie jest zdefiniowana dla danego typu MenuItemCompat

mogę używać tylko do tej klasy następujących metod:

  • setShowAsAction (pozycja, actionEnum)
  • setActionView (pozycja, widok)

Tutaj jest kod

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.restloader, menu); 
    MenuItem searchItem = menu.findItem(R.id.search_menu); 
    SearchView searchView = (SearchView) MenuItemCompat.getActionView(searchItem);  

    // Configure the search info and add any event listeners 

    return super.onCreateOptionsMenu(menu); 
} 

2) Wystąpił problem z tym: xmlns: myapp = "http://schemas.android.com/apk/res-auto" Nie rozumiem, dlaczego jest używany, ale jeśli google mówi, to musi być odpowiednie.

wiadomość

Błąd: Wiele adnotacje znalezione na tej linii: - Błąd: identyfikator zasobów znalezionych dla atrybutu „actionViewClass” w pakiecie „com.example.pruebahttp3” - Błąd: Nie znaleziono identyfikator zasobu dla atrybutu „showAsAction "w pakiecie 'com.example.pruebahttp3'

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

<item 
    android:id="@+id/search_menu" 
    android:orderInCategory="100" 
    android:title="@string/search" 
    android:icon="@drawable/ic_search_category_default" 
    myapp:showAsAction="ifRoom|collapseActionView" 
    myapp:actionViewClass="android.support.v7.widget.SearchView">   
</item> 

Dziękuję bardzo!

Odpowiedz

0

dla 1: Mocowanie drugi będzie rozwiązać ten :)

dla 2:

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

Zmień MojaApl do ciebie aplikacji namespace com.xxx.xxx

+0

to nadal nie działa ... czy wiesz, co to może być? – mxmolins

2

mam ten sam problem, rozwiązałem go za pomocą następującego kodu. Należy zadbać o swoje namespace.`

<!-- Search, should appear as action button --> 
<item 
    android:id="@+id/action_search" 
    android:icon="@drawable/abc_ic_search" 
    share:showAsAction="ifRoom" 
    share:actionViewClass="android.support.v7.widget.SearchView" 
    android:title="@string/abc_searchview_description_search" /> 

`

0

próby skopiowania lib plików bezpośrednio z yourFolder \ sdk \ Extras \ android \ Support \ v7 \ AppCompat \ libs mam podobny problem, ale pojawia się, gdy bezpośrednio kopiuję plik biblioteki JAR, zamiast postępować zgodnie z procedurą biblioteki wsparcia dla Androida. Spróbuj przeciwnie, może to dla ciebie zadziałać. To dziwne, jeśli mnie pytasz.