2013-09-02 4 views
6

Ich versuche, die SearchView ActionBar Element als Android-Entwickler zu implementieren, sagt, aber ich habe einige Probleme. (http://developer.android.com/guide/topics/ui/actionbar.html).Getting eine SearchView mit MenuItemCompat (Android)

Es gibt zwei Fehler, die, obwohl ich viel gesucht habe, konnte ich die Lösung nicht finden.

1) Ich habe ein Problem mit der Klasse MenuItemCompat. Dort heißt es: Verfahren getActionView (MenuItem) für den Typ nicht definiert ist MenuItemCompat

ich nur für diese Klasse die folgenden Methoden verwenden:

  • setShowAsAction (Artikel, actionEnum)
  • setActionView (Artikel, Ansicht)

Hier ist es der Code

@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) Es gibt ein Problem damit: xmlns: myapp = "http://schemas.android.com/apk/res-auto" Ich verstehe nicht, warum es verwendet wird, aber wenn Google es sagt, es muss angemessen sein.

Fehlermeldung: Mehrere Anmerkungen an dieser Linie gefunden: - Fehler: Keine Resource Identifier für Attribut 'actionViewClass' in Paket 'com.example.pruebahttp3' gefunden - Fehler: Keine Resource Identifier für Attribut ‚showAsAction gefunden 'im Paket '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> 

Vielen Dank!

Antwort

0

Für die erste: die zweite Fixing wird dieses Problem beheben :)

Für die 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" > 

ändern myapp Sie Anwendungsnamespace com.xxx.xxx

+0

es funktioniert immer noch nicht ... weißt du, was könnte es sein? – mxmolins

2

i haben Das selbe Problem habe ich mit dem folgenden Code gelöst. Seien Sie die Pflege Ihrer 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

Versuchen Sie, die lib-Dateien direkt aus Yourfolder \ sdk \ Extras \ android \ support \ v7 \ appcompat \ Libs Ich habe ein ähnliches Problem zu kopieren, aber es kommt mir vor, wenn ich die JAR-Bibliotheksdatei direkt kopiere, anstatt der android-Unterstützungsbibliotheksprozedur zu folgen. Versuchen Sie das Gegenteil, es könnte für Sie arbeiten. Irgendwie seltsam, wenn Sie mich fragen.