Запрограммируйте значок Toobar для ответа на нажатие

#android #xamarin #icons #toolbar

#Android #xamarin #Значки #панель инструментов

Вопрос:

После стольких исследований я пришел к этому открытию кода, который я могу использовать для заполнения панели инструментов значками. У меня на панели инструментов есть два значка, один из трех и значок поиска, функциональность которого была сгенерирована IDE, и он работает нормально, мне еще предстоит выяснить, как запрограммировать значок поиска для запроса фокуса клавиатуры для редактируемого текста на той же панели инструментов… Мой код здесь ниже

 //Code to populate the toolbar with icons 
  public override bool OnCreateOptionsMenu(IMenu menu)
        {
   //This one inflates a three dotted menu to the rightmost part of the toolbar
            MenuInflater.Inflate(Resource.Menu.menu2, menu);
//This one adds a search icon next to the Three dotted menu
            MenuInflater.Inflate(Resource.Menu.menu4, menu);
       
            return true;
        }
//This method handles the functionality of the three dot menu icon by generating the associated menu
  public override bool OnOptionsItemSelected(IMenuItem item)
        {
            int id = item.ItemId;
            if (id == Resource.Id.action_settings)
            {
                Intent intent = new Intent(this, typeof(SecondActivity));

                StartActivity(intent);
                OverridePendingTransition(Resource.Animation.slide_in_right, Resource.Animation.abc_popup_exit);
                return true;
            }

            return base.OnOptionsItemSelected(item);
        }
//I need code here to make the search icon do something, some kind of inbuilt method or something thanks
  

Как запрограммировать другие значки, добавленные на панель инструментов, с помощью встроенных методов или любым другим способом, несомненно, будет оценено спасибо…

Комментарии:

1. Может ли это сработать?

2. Что вы имеете в виду?

Ответ №1:

Вы можете попробовать создать menu.xml и установить элемент поиска, как показано ниже:

menu.xml:

 <?xml version="1.0" encoding="utf-8" ?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">
    <item
      android:id="@ id/menu_search"
      android:icon="@drawable/fiveplus"
      android:title="search"
      app:showAsAction="collapseActionView"
      app:actionViewClass="android.support.v7.widget.SearchView"/>  
</menu>
  

затем в вашей деятельности:

 public override bool OnCreateOptionsMenu(IMenu menu)
    {
        MenuInflater.Inflate(Resource.Menu.menu, menu);
        searchMenuItem = menu.FindItem(Resource.Id.menu_search);
        Android.Support.V7.Widget.SearchView searchView = (Android.Support.V7.Widget.SearchView)searchMenuItem.ActionView;
        searchView.QueryTextChange  = SearchView_QueryTextChange;
        return true;
    }

private void SearchView_QueryTextChange(object sender, Android.Support.V7.Widget.SearchView.QueryTextChangeEventArgs e)
    {
        //do something you want
        Toast.MakeText(this, e.NewText,ToastLength.Short).Show();
    }