#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();
}