我在这个ActionBar上有一个带有操作栏和一个图标的活动。当用户按下这个图标,我需要隐藏这个图标,并显示EditText与十字架,以清除文本。当用户将完成它(在ListView中选择项目或按后退按钮),我将需要再次显示图标。
这里有两个相关的问题: 1.如何在ActionBar上添加EditText用于ListView过滤? 2.如何在EditText和图标之间切换ActionBar?
单击前:

点击‘加号’图标后:

发布于 2015-01-29 20:13:08
您需要在应用程序中添加一个SearchView小部件。官方文档在这里:http://developer.android.com/training/search/setup.html
也有详细的说明来添加它。
发布于 2015-01-29 20:26:43
searchmenu.xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:id="@+id/action_search"
android:title="search"
android:icon="@android:drawable/ic_menu_search"
android:showAsAction="always"
android:actionViewClass="android.widget.SearchView" />
</menu>mainactivity.java
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.searchmenu, menu);
mSearchView = (SearchView) menu.findItem(R.id.action_search).getActionView();
setupSearchView();
return super.onCreateOptionsMenu(menu);
}
private void setupSearchView() {
mSearchView.setIconifiedByDefault(true);
mSearchView.setOnQueryTextListener(this);
mSearchView.setQueryHint("Search Here");
}
@Override
public boolean onQueryTextChange(String newText) {
//implement the filterng techniques
return false;
}
@Override
public boolean onQueryTextSubmit(String query) {
return false;
}发布于 2015-01-29 21:05:46
请参考Commonsware的this answer。更明显的是,他的sample project可以做到这一点。
只需覆盖onOptionItemSelected并尝试设置该菜单项的可见性。
MenuItem item = menu.findItem(R.id.my_item);
item.setVisible(false);或者,如果您希望完全掌握控制权,请尝试使用customize your action bar
https://stackoverflow.com/questions/28214449
复制相似问题