Добавить прослушиватель onclick к значку на панели действий в Xamarin Android

#android #xamarin #android-actionbar #icons

#Android #xamarin #android-панель действий #Значки

Вопрос:

LoginActivity

У меня есть значок настроек на панели действий, и я хотел что-то сделать, когда пользователь нажимает на значок, как показано на рисунке ниже (например, всплывающее окно отображения), мне просто нужен метод, вот и все, заранее спасибо…Вот созданный код, который раздувает значок на моей панели действий

 public override bool OnCreateOptionsMenu(IMenu menu)
{
    MenuInflater.Inflate(Resource.Menu.settings, menu);
    return true;
}
  

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_item1"
          android:icon="@drawable/settings"
          app:showAsAction="always"/>

</menu>
  

Метод обработки при нажатии на этот значок очень ценится (показать всплывающее окно)

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

1. Вы пробовали переопределить OnContextItemSelected и проверить, сработало ли это?

2. Нет, я этого не делал, нужны ли методу какие-либо параметры? Это логическое значение? Можете ли вы опубликовать весь метод в качестве комментария?, Спасибо

3. Или компилятор автоматически завершит код?

4. Я нашел метод, это уже для вас, спасибо

5. public override bool OnContextItemSelected(IMenuItem item) { return base.OnContextItemSelected(item); } Должен ли я комментировать super?

Ответ №1:

Этот встроенный метод работает для отображения всплывающего окна при нажатии на значок настроек

  public override bool OnOptionsItemSelected(IMenuItem item)
        {
            Toast.MakeText(this, "You tapped on the Settings Icon", ToastLength.Long).Show();
            return base.OnOptionsItemSelected(item);
        }