下面列出了android.support.v7.widget.SearchView.OnQueryTextListener#android.support.v4.view.MenuItemCompat 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
@Override
public void inflateMenu(@MenuRes int resId) {
super.inflateMenu(resId);
Menu menu = getMenu();
MenuItem item = menu.getItem(0);
int size = item.getIcon().getIntrinsicWidth() + ControlHelper.dpToPx(30, getResources());
int width = getWidth();
for (int i = 0; i < menu.size(); i++) {
item = menu.getItem(i);
if (size * (i + 2) < width)
MenuItemCompat.setShowAsAction(item, MenuItemCompat.SHOW_AS_ACTION_ALWAYS);
else
break;
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.ride_menu, menu);
// store action provider
shareMenuItem = menu.findItem(R.id.menu_item_share);
shareMenuItem.setVisible(false);
shareActionProvider = (ShareActionProvider) MenuItemCompat.getActionProvider(shareMenuItem);
// Create share intent
shareFileIntent = new Intent();
shareFileIntent.setAction(Intent.ACTION_SEND);
shareFileIntent.setType("text/csv");
shareFileIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
setShareIntent(shareFileIntent);
return true;
}
/**
* {@inheritDoc}
*
* @see android.app.Activity#onCreateOptionsMenu(android.view.Menu)
*/
@Override
public boolean onCreateOptionsMenu(final Menu menu) {
final MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.recentmenu, menu);
MenuItem searchItem = menu.findItem(R.id.recentmenu_searchBook);
SearchView searchView = (SearchView) MenuItemCompat.getActionView(searchItem);
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
ActionEx a = getController().getOrCreateAction(R.id.actions_searchBook);
a.addParameter(new Constant("input", new SpannableStringBuilder(query)));
a.run();
return true;
}
@Override
public boolean onQueryTextChange(String newText) {
return false;
}
});
return true;
}
@Override
public boolean onCreateOptionsMenu(final Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
final SearchView searchView = (SearchView) MenuItemCompat.getActionView(menu.findItem(R.id.menuItem_search));
searchView.setOnQueryTextListener(new OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(final String query) {
return false;
}
@Override
public boolean onQueryTextChange(final String newText) {
performSearch(newText);
return true;
}
});
return super.onCreateOptionsMenu(menu);
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
// Inflate the menu; this adds items to the action bar if it is present.
inflater.inflate(R.menu.detailfragment, menu);
// Retrieve the share menu item
MenuItem menuItem = menu.findItem(R.id.action_share);
// Get the provider and hold onto it to set/change the share intent.
mShareActionProvider = (ShareActionProvider) MenuItemCompat.getActionProvider(menuItem);
// If onLoadFinished happens before this, we can go ahead and set the share intent now.
if (mForecast != null) {
mShareActionProvider.setShareIntent(createShareForecastIntent());
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
MenuItem menuItem = menu.findItem(R.id.action_search);
final SearchView searchView = (SearchView) MenuItemCompat.getActionView(menuItem);
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
InputMethodManager manager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
if (null != manager) {
manager.hideSoftInputFromWindow(searchView.getWindowToken(), 0);
}
Intent intent = new Intent(MainActivity.this, SearchActivity.class);
intent.putExtra("keyword",query);
startActivity(intent);
return false;
}
@Override
public boolean onQueryTextChange(String newText) {
return false;
}
});
return true;
}
/** Create menu from XML
*/
@TargetApi(Build.VERSION_CODES.FROYO)
@Override
public boolean onCreateOptionsMenu(Menu menu) {
mMenu = menu;
/* Note: on Android 3.0+ with an action bar this method
* is called while the view is created. This can happen
* any time after onCreate.
*/
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.media_library, menu);
if (AndroidUtil.isFroyoOrLater()) {
SearchManager searchManager =
(SearchManager) VLCApplication.getAppContext().getSystemService(Context.SEARCH_SERVICE);
mSearchView = (SearchView) MenuItemCompat.getActionView(menu.findItem(R.id.ml_menu_search));
mSearchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
mSearchView.setQueryHint(getString(R.string.search_hint));
SearchSuggestionsAdapter searchSuggestionsAdapter = new SearchSuggestionsAdapter(this, null);
searchSuggestionsAdapter.setFilterQueryProvider(this);
mSearchView.setSuggestionsAdapter(searchSuggestionsAdapter);
} else
menu.findItem(R.id.ml_menu_search).setVisible(false);
return super.onCreateOptionsMenu(menu);
}
private void fillApplicationList() {
// Get recycler view
final RecyclerView rvApplication = (RecyclerView) findViewById(R.id.rvApplication);
rvApplication.setHasFixedSize(true);
rvApplication.setLayoutManager(new LinearLayoutManager(this));
// Get/set application list
new AsyncTask<Object, Object, List<Rule>>() {
@Override
protected List<Rule> doInBackground(Object... arg) {
return Rule.getRules(ActivityMain.this);
}
@Override
protected void onPostExecute(List<Rule> result) {
if (running) {
if (searchItem != null)
MenuItemCompat.collapseActionView(searchItem);
adapter = new RuleAdapter(result, ActivityMain.this);
rvApplication.setAdapter(adapter);
}
}
}.execute();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Be sure to call the super class.
super.onCreateOptionsMenu(menu);
// Inflate the menu and configure the media router action provider.
getMenuInflater().inflate(R.menu.sample_media_router_menu, menu);
MenuItem mediaRouteMenuItem = menu.findItem(R.id.media_route_menu_item);
MediaRouteActionProvider mediaRouteActionProvider =
(MediaRouteActionProvider) MenuItemCompat.getActionProvider(mediaRouteMenuItem);
mediaRouteActionProvider.setRouteSelector(mSelector);
// Return true to show the menu.
return true;
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
// Locate MenuItem with ShareActionProvider
MenuItem itemShare = menu.findItem(R.id.action_share);
// Get the provider and hold onto it to set/change the share intent.
shareActionProvider = (ShareActionProvider) MenuItemCompat.getActionProvider(itemShare);
// Set history different from the default before getting the action
// view since a call to MenuItemCompat.getActionView() calls
// onCreateActionView() which uses the backing file name. Omit this
// line if using the default share history file is desired.
shareActionProvider.setShareHistoryFileName("snowdream_android_imageviewer_share_history.xml");
Intent shareIntent = createShareIntent();
if (shareIntent != null) {
doShare(shareIntent);
}
return true;
}
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
if (mApp != null && DEBUG) Log.d(TAG, "SearchActivity.onPrepareOptionsMenu: Setting items visibility");
if (refreshItem != null) {
if (lastSearch != null && (lastSearch.mSearchStatus == ECSearchStatus.STARTING || lastSearch.mSearchStatus == ECSearchStatus.RUNNING)) {
if (mIsProgressShown) {
MenuItemCompat.setActionView(refreshItem, R.layout.part_refresh_progress);
//refreshItem.setActionView(R.layout.part_refresh_progress);
} else {
MenuItemCompat.setActionView(refreshItem, null);
//refreshItem.setActionView(null);
}
refreshItem.setVisible(true);
} else {
refreshItem.setVisible(false);
}
}
if (mApp != null && DEBUG) Log.d(TAG, "SearchActivity.onPrepareOptionsMenu: calling super");
boolean superRet = super.onPrepareOptionsMenu(menu);
if (mApp != null && DEBUG) Log.d(TAG, "SearchActivity.onPrepareOptionsMenu: super returned " + superRet + " - end");
return superRet;
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
MenuItem menuItem = menu.findItem(R.id.action_search);
final SearchView searchView = (SearchView) MenuItemCompat.getActionView(menuItem);
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
InputMethodManager manager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
if (null != manager) {
manager.hideSoftInputFromWindow(searchView.getWindowToken(), 0);
}
Intent intent = new Intent(ZhuanTiActivity.this, SearchActivity.class);
intent.putExtra("keyword",query);
startActivity(intent);
return false;
}
@Override
public boolean onQueryTextChange(String newText) {
return false;
}
});
return true;
}
@Override
public void onBackPressed() {
super.onBackPressed();
if (drawerLayout.isDrawerOpen(GravityCompat.START)) {
drawerLayout.closeDrawer(GravityCompat.START);
} else if (drawerLayout.isDrawerOpen(GravityCompat.END)) { /*Closes the Appropriate Drawer*/
drawerLayout.closeDrawer(GravityCompat.END);
} else {
this.finish();
}
if (searchView != null && !searchView.isIconified()) {
MenuItemCompat.collapseActionView(mMenuItem);
return;
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.detail, menu);
// Locate MenuItem with ShareActionProvider
MenuItem item = menu.findItem(R.id.menu_item_share);
// Fetch and store ShareActionProvider
mShareActionProvider = (ShareActionProvider) MenuItemCompat.getActionProvider(item);
if (mShareActionProvider != null) {
mShareActionProvider.setShareIntent(getDefaultShareIntent());
}
else {
Log.d(LOG_TAG, "ShareActionProvider is null");
}
return true;
}
private void initNavView() {
boolean night = SPUtils.getPrefBoolean(Constant.THEME_MODEL, false);
if (night) {
getDelegate().setLocalNightMode(AppCompatDelegate.MODE_NIGHT_YES);
} else {
getDelegate().setLocalNightMode(AppCompatDelegate.MODE_NIGHT_NO);
}
MenuItem item = mNavigationView.getMenu().findItem(R.id.nav_theme);
mNavigationView.getMenu().findItem(R.id.nav_home).setChecked(true);
mThemeSwitch = (SwitchCompat) MenuItemCompat.getActionView(item).findViewById(R.id.view_switch);
mThemeSwitch.setChecked(night);
mThemeSwitch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
SPUtils.setPrefBoolean(Constant.THEME_MODEL, isChecked);
mThemeSwitch.setChecked(isChecked);
if (isChecked) {
getDelegate().setLocalNightMode(AppCompatDelegate.MODE_NIGHT_YES);
} else {
getDelegate().setLocalNightMode(AppCompatDelegate.MODE_NIGHT_NO);
}
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_search, menu);
MenuItem item = menu.findItem(R.id.action_search);
searchView = (SearchView) MenuItemCompat.getActionView(item);
// 关联检索配置与 SearchActivity
SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
SearchableInfo searchableInfo = searchManager.getSearchableInfo(
new ComponentName(getApplicationContext(), SearchActivity.class));
searchView.setSearchableInfo(searchableInfo);
searchView.onActionViewExpanded();
// // 设置搜索文字样式
// EditText searchEditText = (EditText) searchView.findViewById(android.support.v7.appcompat.R.id.search_src_text);
// searchEditText.setTextColor(getResources().getColor(R.color.textColorPrimary));
// searchEditText.setHintTextColor(getResources().getColor(R.color.textColorPrimary));
// searchEditText.setBackgroundColor(Color.WHITE);
setOnQuenyTextChangeListener();
return super.onCreateOptionsMenu(menu);
}
void initializeSettingsButton(Menu OptionsMenu) {
// Add refresh in Action Bar
MenuItem settingsItem = OptionsMenu.add(Menu.NONE, Menu.NONE, Menu.NONE, getString(R.string.settings));
// Set up the view
settingsItem.setIcon(R.drawable.ic_settings);
// Specify the show flags
MenuItemCompat.setShowAsAction(settingsItem, MenuItem.SHOW_AS_ACTION_ALWAYS);
// On click, go to Settings
settingsItem.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
// Start settings activity
goToSettings(false);
// Consume event
return true;
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuItem item = menu.add(0, ACTION_FILTER, 0, "Filter");
MenuItemCompat.setShowAsAction(item, MenuItemCompat.SHOW_AS_ACTION_NEVER);
item = menu.add(0, ACTION_LEVEL, 0, "Level");
MenuItemCompat.setShowAsAction(item, MenuItemCompat.SHOW_AS_ACTION_NEVER);
item = menu.add(0, ACTION_CLEAR, 0, "Clear");
MenuItemCompat.setShowAsAction(item, MenuItemCompat.SHOW_AS_ACTION_NEVER);
item = menu.add(0, ACTION_SHARE, 0, "Share");
MenuItemCompat.setShowAsAction(item, MenuItemCompat.SHOW_AS_ACTION_NEVER);
return true;
}
private void addEnvironmentMenu(Menu menuGroup, List<EnvironmentModel> environments) {
log.debug("reloadMenu: {}", environments);
final AtomicInteger menuOrder = new AtomicInteger(MENU_ENVIRONMENT_RANGE_MIN);
Stream.of(environments)
.forEach(environment -> {
menuGroup.add(R.id.nav_group_environment, environment.getId(),
menuOrder.getAndIncrement(), environment.getName());
// edit menu
MenuItem menuItem = MenuItemCompat.setActionView(menuGroup.findItem(environment.getId()),
R.layout.drawer_menu_environment);
menuItem.getActionView().findViewById(R.id.imageViewDrawerMenuEnvironmentEdit)
.setOnClickListener(new NavigationViewClickListener(this, environment.getId()));
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.music_track_list, menu);
// Finds the search item and create the search view
MenuItem itemSearch = menu.findItem(R.id.action_search);
mSearchView = (SearchView)MenuItemCompat.getActionView(itemSearch);
if (mSearchView != null) {
// Sets the search listener
mSearchView.setOnQueryTextListener(this);
mSearchView.setIconifiedByDefault(true);
// Hack to change the default placeholder
EditText searchEditText = (EditText) mSearchView.findViewById(android.support.v7.appcompat.R.id.search_src_text);
searchEditText.setHint(R.string.search);
}
return true;
}
private void initNavView(){
MenuItem item = mNavigationView.getMenu().findItem(R.id.nav_theme);
mNavigationView.getMenu().findItem(R.id.nav_home).setChecked(true);
mThemeSwitch = (SwitchCompat) MenuItemCompat
.getActionView(item)
.findViewById(R.id.theme_switch);
//
mThemeSwitch.setChecked(!SkinPreUtils.getInstance(this).getSkinPath().equals(""));
mThemeSwitch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if(isChecked){
/*
* 这里有待改进,是读取apk包的地方
* */
String skinPath = Environment.getExternalStorageDirectory().getAbsolutePath()
+ File.separator
+ "skin_night.apk";
mSkinManager.loadSkin(skinPath);
}else{
mSkinManager.restoreDefault();
}
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
if (isUseToolbar()){
getMenuInflater().inflate(R.menu.menu_webactivity_refresh, menu);
MenuItem item = menu.findItem(R.id.menu_refresh);
View view = MenuItemCompat.getActionView(item);
((ViewGroup) view).addView(refresh);
return true;
}
else
return super.onCreateOptionsMenu(menu);
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
//menu.clear();
super.onCreateOptionsMenu(menu,inflater);
inflater.inflate(R.menu.customer_fragment_menu, menu);
MenuItem searchItem = menu.findItem(R.id.action_search);
SearchView searchView = (SearchView) MenuItemCompat.getActionView(searchItem);
SearchManager searchManager = (SearchManager) getActivity().getSystemService(Context.SEARCH_SERVICE);
if (searchView != null) {
List<SearchableInfo> searchables = searchManager.getSearchablesInGlobalSearch();
SearchableInfo info = searchManager.getSearchableInfo(getActivity().getComponentName());
for (SearchableInfo inf : searchables) {
if (inf.getSuggestAuthority() != null && inf.getSuggestAuthority().startsWith("applications")) {
info = inf;
}
}
searchView.setSearchableInfo(info);
searchView.setOnQueryTextListener(this);
searchView.setQueryHint(getActivity().getString(R.string.customer_title_search));
if(mQuery != null && mQuery.length() > 0) {
searchView.setQuery(mQuery, true);
searchView.setIconifiedByDefault(false);
searchView.performClick();
searchView.requestFocus();
} else {
searchView.setIconifiedByDefault(true);
}
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
if (IS_JBMR2) {
getMenuInflater().inflate(R.menu.fold_with_bug, menu);
} else {
getMenuInflater().inflate(R.menu.fold, menu);
}
MenuItem spinerItem = menu.findItem(R.id.num_of_folds);
Spinner s = (Spinner) MenuItemCompat.getActionView(spinerItem);
s.setOnItemSelectedListener(mItemSelectedListener);
return true;
}
/**
* 展开SearchView进行查询
*
* @param key
*/
private void search(String key) {
MenuItemCompat.expandActionView(searchMenuItem);
if (!TextUtils.isEmpty(key)) {
searchView.setQuery(key, true);
saveSearchHistory(key);
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.search_menu, menu);
MenuItem search = menu.findItem(R.id.search_menu);
searchView = (SearchView) MenuItemCompat.getActionView(search);
searchView.onActionViewExpanded();
searchView.setOnQueryTextListener(this);
return super.onCreateOptionsMenu(menu);
}
void initializeLoadingIndicator(Menu OptionsMenu) {
// Add refresh in Action Bar
mLoadingItem = OptionsMenu.add(Menu.NONE, Menu.NONE, Menu.NONE, getString(R.string.loading));
// Set up the view
MenuItemCompat.setActionView(mLoadingItem, R.layout.loading);
// Specify the show flags
MenuItemCompat.setShowAsAction(mLoadingItem, MenuItem.SHOW_AS_ACTION_ALWAYS);
// Hide by default
mLoadingItem.setVisible(false);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu_main, menu);
// Set initial state of toggle and click behaviour.
final SwitchCompat cjdnsServiceSwitch = (SwitchCompat) MenuItemCompat.getActionView(menu.findItem(R.id.switch_cjdns_service));
mSubscriptions.add(AppObservable.bindActivity(this, Cjdroute.running(this)
.subscribeOn(Schedulers.io()))
.subscribe(new Action1<Integer>() {
@Override
public void call(Integer pid) {
// Change toggle check state if there is a currently running cjdroute process.
cjdnsServiceSwitch.setChecked(true);
}
}, new Action1<Throwable>() {
@Override
public void call(Throwable throwable) {
// Do nothing.
}
}, new Action0() {
@Override
public void call() {
// Configure toggle click behaviour.
cjdnsServiceSwitch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) {
mBus.post(new ApplicationEvents.StartCjdnsService());
} else {
mBus.post(new ApplicationEvents.StopCjdnsService());
}
}
});
}
}));
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
DynamicShareActionProvider provider = (DynamicShareActionProvider) MenuItemCompat.getActionProvider(menu.findItem(R.id.menu_item_share));
provider.setShareDataType("text/plain");
provider.setOnShareIntentUpdateListener(new DynamicShareActionProvider.OnShareIntentUpdateListener() {
@Override
public Bundle onShareIntentExtrasUpdate() {
Bundle extras = new Bundle();
EditText shareEdit = (EditText) findViewById(R.id.share_edit);
extras.putString(android.content.Intent.EXTRA_TEXT, shareEdit.getText().toString());
return extras;
}
});
DynamicShareActionProvider shareLaterProvider = (DynamicShareActionProvider) MenuItemCompat.getActionProvider(menu.findItem(R.id.menu_item_share_later));
shareLaterProvider.setShareDataType("text/plain");
shareLaterProvider.setOnShareLaterListener(new DynamicShareActionProvider.OnShareLaterListener() {
@Override
public void onShareClick(Intent shareIntent) {
MyShareAsyncTask task = new MyShareAsyncTask();
task.execute(shareIntent);
}
});
return true;
}
public void search(final String query, final boolean autoplay, final String artist, final String album, final String title) {
if(skipSearch) {
skipSearch = false;
return;
}
currentQuery = query;
BackgroundTask<SearchResult> task = new TabBackgroundTask<SearchResult>(this) {
@Override
protected SearchResult doInBackground() throws Throwable {
SearchCritera criteria = new SearchCritera(query, MAX_ARTISTS, MAX_ALBUMS, MAX_SONGS);
MusicService service = MusicServiceFactory.getMusicService(context);
return service.search(criteria, context, this);
}
@Override
protected void done(SearchResult result) {
searchResult = result;
recyclerView.setAdapter(adapter = new SearchAdapter(context, searchResult, getImageLoader(), largeAlbums, SearchFragment.this));
if (autoplay) {
autoplay(query, artist, album, title);
}
}
};
task.execute();
if(searchItem != null) {
MenuItemCompat.collapseActionView(searchItem);
}
}