android - Getting Result from Activity Started with SearchManager -
i following relatively simple tutorial on how manually start searchableactivity
can result
it.
he setting base activity
(activity a) searchable activity (in manifest), receives search intent , manually launch real search activity
(activity b) startactivityforresult
,
after altering manifests, has 1 block of code. question:
where put code?
private void handleintent(intent intent) { // intent, verify action , query if (intent.action_search.equals(intent.getaction())) { string query = intent.getstringextra(searchmanager.query); // manually launch real search activity final intent searchintent = new intent(getapplicationcontext(), mysearchactivity.class); // add query intent extras searchintent.putextra(searchmanager.query, query); startactivityforresult(searchintent, activity_request_code); }
activity
or b? , call it?
extra info - how doing - cut out?
@override public boolean oncreateoptionsmenu(menu menu) { menuinflater inflater = getsupportmenuinflater(); inflater.inflate(r.menu.menu, menu); menuitem searchitem = menu.finditem(r.id.menu_search); searchmanager searchmanager = (searchmanager) getsystemservice(context.search_service); if (build.version.sdk_int < build.version_codes.honeycomb) { searchview searchview = (searchview) searchitem.getactionview(); searchview.setsearchableinfo(searchmanager .getsearchableinfo(getcomponentname())); searchview.seticonifiedbydefault(true); } else if (build.version.sdk_int >= build.version_codes.honeycomb) { setupnewsearchview(searchitem, searchmanager); } return true;
}
@targetapi(build.version_codes.honeycomb) private void setupnewsearchview(final menuitem searchitem, searchmanager searchmanager) { android.widget.searchview searchview = (android.widget.searchview) searchitem.getactionview(); searchview.setsearchableinfo(searchmanager.getsearchableinfo(getcomponentname())); searchview.seticonifiedbydefault(true); }
first make activity(a) singleinstance/singletop in manifest.xml android:launchmode="singleinstance|singletop"
use onnewintent(intent intent)
activity(a) handleintent(intent)
edit:
activitya.java
@override protected void onnewintent(intent intent) { handleintent(intent); }
please read tutorial full clear view of happening
Comments
Post a Comment