2013-09-02 1 views
6

J'essaie d'implémenter l'élément SearchBar ActionBar comme le disent les développeurs Android, mais j'ai des problèmes. (http://developer.android.com/guide/topics/ui/actionbar.html).Obtenir un SearchView avec MenuItemCompat (Android)

Il y a deux erreurs que j'ai beaucoup cherché, mais je n'ai pas réussi à trouver la solution.

1) J'ai un problème avec la classe MenuItemCompat. Il dit: La méthode getActionView (MenuItem) est définie pour le type MenuItemCompat

Je ne peux utiliser pour cette classe les méthodes suivantes:

  • setShowAsAction (point, actionEnum)
  • setActionView (point, vue)

ici, il est le 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) Il y a un problème avec ceci: xmlns: myapp = "http://schemas.android.com/apk/res-auto" Je ne comprends pas pourquoi il est utilisé mais si google le dit, il doit être approprié.

Message d'erreur: annotations multiples trouvées sur cette ligne: - Erreur: Aucun identifiant de ressource trouvé pour l'attribut « actionViewClass » dans le paquet « com.example.pruebahttp3 » - Erreur: Aucun identifiant de ressource trouvé pour l'attribut « showAsAction 'dans le paquet '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> 

Merci beaucoup!

Répondre

0

Pour la 1ère: La fixation du deuxième corrigera cette :)

Pour le 2ème:

<?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" > 

changement monapp vous namespace l'application com.xxx.xxx

+0

ça ne marche toujours pas ... savez-vous ce que cela pourrait être? – mxmolins

2

i ont obtenu le même problème, je l'ai résolu en utilisant le code suivant. Soyez soin de votre 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

Essayez de copier les fichiers lib directement à partir YourFolder \ sdk \ extras \ android \ support \ v7 \ appcompat \ libs J'ai un problème similaire, mais il me vient quand je copie directement le fichier de bibliothèque JAR plutôt que de suivre la procédure de la bibliothèque de support android. Essayez le contraire, cela pourrait fonctionner pour vous. Un peu bizarre si vous me demandez.