如何将搜索添加到操作栏
How to add search into action bar
知道如何在 Android 上的 操作栏 中添加 searchview 吗?
我已经尝试了很多示例并且我在 google 上搜索了很多时间但是我没有找到解决我的问题的方法......我已经找到了如何将搜索放入操作栏但是之后我无法使用我的搜索...我只能打开它。
这是 activity:
public class SearchActivity extends Activity implements SearchView.OnQueryTextListener {
private SearchView mSearchView;
private ListView mListView;
private final String[] mStrings = Cheeses.sCheeseStrings;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().requestFeature(Window.FEATURE_ACTION_BAR);
setContentView(R.layout.search_activity);
mSearchView = (SearchView) findViewById(R.id.search_view);
mListView = (ListView) findViewById(R.id.list_view);
mListView.setAdapter(new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, mStrings));
mListView.setTextFilterEnabled(true);
ActionBar actionBar = getActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
actionBar.setDisplayShowTitleEnabled(true);
actionBar.setTitle("");
actionBar.setCustomView(mSearchView);
mSearchView.setQuery("", true);
mSearchView.setFocusable(true);
mSearchView.setIconified(false);
actionBar.setDisplayHomeAsUpEnabled(true);
setupSearchView();
}
private void setupSearchView() {
mSearchView.setIconifiedByDefault(false);
mSearchView.setOnQueryTextListener(this);
mSearchView.setSubmitButtonEnabled(true);
mSearchView.setQueryHint("Search Here");
}
public boolean onQueryTextChange(String newText) {
if (TextUtils.isEmpty(newText)) {
mListView.clearTextFilter();
} else {
mListView.setFilterText(newText.toString());
}
return true;
}
public boolean onQueryTextSubmit(String query) {
return false;
}
}
这是我的 result,带有 搜索栏 和 操作栏 作为个人。
因此,如果有人知道我该如何解决该问题,请告诉我,我将不胜感激。
覆盖 onCreateOptionsMenu 方法以设置带有搜索的操作栏。此代码段应该对您有所帮助。
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.my_list, menu);
final MenuItem searchItem = menu.findItem(R.id.action_search);
final SearchView searchView = (SearchView) MenuItemCompat.getActionView(searchItem);
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
//Fetch the data remotely
FetchData(query);
//Reset the SearchView
searchView.clearFocus();
searchView.setQuery("", false);
searchView.setIconified(true);
searchItem.collapseActionView();
//Set Activity title to search query
MainActivity.this.setTitle(query);
return true;
}
@Override
public boolean onQueryTextChange(String newText) {
return false;
}
});
return true;
}
希望对您有所帮助。
知道如何在 Android 上的 操作栏 中添加 searchview 吗? 我已经尝试了很多示例并且我在 google 上搜索了很多时间但是我没有找到解决我的问题的方法......我已经找到了如何将搜索放入操作栏但是之后我无法使用我的搜索...我只能打开它。
这是 activity:
public class SearchActivity extends Activity implements SearchView.OnQueryTextListener {
private SearchView mSearchView;
private ListView mListView;
private final String[] mStrings = Cheeses.sCheeseStrings;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().requestFeature(Window.FEATURE_ACTION_BAR);
setContentView(R.layout.search_activity);
mSearchView = (SearchView) findViewById(R.id.search_view);
mListView = (ListView) findViewById(R.id.list_view);
mListView.setAdapter(new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, mStrings));
mListView.setTextFilterEnabled(true);
ActionBar actionBar = getActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
actionBar.setDisplayShowTitleEnabled(true);
actionBar.setTitle("");
actionBar.setCustomView(mSearchView);
mSearchView.setQuery("", true);
mSearchView.setFocusable(true);
mSearchView.setIconified(false);
actionBar.setDisplayHomeAsUpEnabled(true);
setupSearchView();
}
private void setupSearchView() {
mSearchView.setIconifiedByDefault(false);
mSearchView.setOnQueryTextListener(this);
mSearchView.setSubmitButtonEnabled(true);
mSearchView.setQueryHint("Search Here");
}
public boolean onQueryTextChange(String newText) {
if (TextUtils.isEmpty(newText)) {
mListView.clearTextFilter();
} else {
mListView.setFilterText(newText.toString());
}
return true;
}
public boolean onQueryTextSubmit(String query) {
return false;
}
}
这是我的 result,带有 搜索栏 和 操作栏 作为个人。 因此,如果有人知道我该如何解决该问题,请告诉我,我将不胜感激。
覆盖 onCreateOptionsMenu 方法以设置带有搜索的操作栏。此代码段应该对您有所帮助。
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.my_list, menu);
final MenuItem searchItem = menu.findItem(R.id.action_search);
final SearchView searchView = (SearchView) MenuItemCompat.getActionView(searchItem);
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
//Fetch the data remotely
FetchData(query);
//Reset the SearchView
searchView.clearFocus();
searchView.setQuery("", false);
searchView.setIconified(true);
searchItem.collapseActionView();
//Set Activity title to search query
MainActivity.this.setTitle(query);
return true;
}
@Override
public boolean onQueryTextChange(String newText) {
return false;
}
});
return true;
}
希望对您有所帮助。