Add the Search View to the App Bar in Android -
i trying add search view app bar in android. followed tutorial:http://developer.android.com/training/search/setup.html#add-sv
but when run program, icon clicked, search view did not appear, tutorial says should appear. can me?
menu_main.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/action_search" android:title="@string/abc_search_hint" android:icon="@drawable/ic_search_white_48dp" app:showasaction="ifroom|collapseactionview" android:actionviewclass="android.widget.searchview" /> </menu> mainactivity public class mainactivity extends actionbaractivity { @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); } @override public boolean oncreateoptionsmenu(menu menu) { menuinflater inflater = getmenuinflater(); inflater.inflate(r.menu.menu_main, menu); return true; } @override public boolean onoptionsitemselected(menuitem item) { int id = item.getitemid(); if (id == r.id.action_search) { return true; } 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/search" android:title="@string/search" android:icon="@drawable/ic_search_white" android:textcolor="@color/white" app:showasaction="ifroom|collapseactionview" app:actionviewclass="android.support.v7.widget.searchview" /> </menu> activity
@override public boolean oncreateoptionsmenu(menu menu) { getmenuinflater().inflate(r.menu.search_menu, menu); menuitem searchitem = menu.finditem(r.id.search); final searchmanager searchmanager = (searchmanager) getsystemservice(context.search_service); searchview searchview = (searchview) menuitemcompat.getactionview(searchitem); searchview.setsearchableinfo( searchmanager.getsearchableinfo(getcomponentname())); searchview.setonquerytextlistener(new searchview.onquerytextlistener() { @override public boolean onquerytextsubmit(string querytext) { return true; } @override public boolean onquerytextchange(string newtext) { string newfilter = !textutils.isempty(newtext) ? newtext : null; if (msearchterm == null && newfilter == null) { return true; } if (msearchterm != null && msearchterm.equals(newfilter)) { return true; } msearchterm = newfilter; msearchquerychanged = true; searchtext(newtext); //handle return true; } }); menuitemcompat.onactionexpandlistener expandlistener = new menuitemcompat.onactionexpandlistener() { @override public boolean onmenuitemactionexpand(menuitem menuitem) { return true; } @override public boolean onmenuitemactioncollapse(menuitem menuitem) { return true; } }; menuitemcompat.setonactionexpandlistener(searchitem, expandlistener); return super.oncreateoptionsmenu(menu); } 
Comments
Post a Comment