2016-08-04 31 views
0

Ich habe Probleme damit, diesen Java-Code in Xamarin zu implementieren. Ich habe versucht searchView.Close += delegate { };, aber es funktioniert nicht.Xamarin searchview OnActionExpandListener

searchMI.setOnActionExpandListener(new MenuItem.OnActionExpandListener() { 

     @Override 
     public boolean onMenuItemActionExpand(MenuItem item) { 
      Toast.makeText(getApplicationContext(), "MenuItem#onMenuItemActionExpand", Toast.LENGTH_SHORT).show(); 
      return true; 
     } 

     @Override 
     public boolean onMenuItemActionCollapse(MenuItem item) { 
      Toast.makeText(getApplicationContext(), "MenuItem#onMenuItemActionExpand", Toast.LENGTH_SHORT).show(); 
      return true; 
     } 
    }); 

Antwort

2

Dank menuitem für Sie zu beantworten, ist es zunächst nicht funktionierte, habe ich eine Ausnahme hatte sich

Diese nicht Gebrauch menuitemcompat unterstützt. setonactionexpandlistener()

Ich musste dies stattdessen tun

An der Spitze meiner Datei:

using MenuItemCompat = Android.Support.V4.View.MenuItemCompat; 

In OnCreateOptionsMenu(), wenn ich die Suchansicht erstellen.

IMenuItem searchItem = menu.FindItem(Resource.Id.searchItem); 
MenuItemCompat.SetOnActionExpandListener(searchItem, new ExpandListener(this)); 

Und schließlich die Zuhörer Klasse

class ExpandListener : Java.Lang.Object, MenuItemCompat.IOnActionExpandListener 
{ 
    Context context; 

    public ExpandListener(Context pContext) 
    { 
     context = pContext; 
    } 
    public bool OnMenuItemActionCollapse(IMenuItem item) 
    { 
     //MyStuff with context 
     return true; 
    } 

    public bool OnMenuItemActionExpand(IMenuItem item) 
    { 
     //Stuff 
     return true; 
    } 
} 
2

benutzerdefinierte Klasse erstellen, die IMenuItemOnActionExpandListener implementiert.

class ExpandListener : Java.Lang.Object, IMenuItemOnActionExpandListener 
{    
    public bool OnMenuItemActionCollapse(IMenuItem item) 
    { 
     return true; 
    } 

    public bool OnMenuItemActionExpand(IMenuItem item) 
    { 
     return true; 
    } 
} 

gesetzt Dann Zuhörer mit

searchMI.SetOnActionExpandListener(new ExpandListener());