我在此ActionBar上有一个带有操作栏和一个图标的活动。当用户按下此图标时,我需要隐藏此图标并显示带有交叉的EditText以清除文本。当用户完成它时(在ListView中选择项目或按后退按钮)我将需要再次显示图标。
这是两个相关的问题: 1.如何在ActionBar上为ListView过滤添加EditText? 2.如何在EditText和图标之间更改ActionBar?
点击之前:
点击'加上'图标:
答案 0 :(得分:1)
您需要将SearchView小部件添加到您的应用程序中。 官方文档在这里: http://developer.android.com/training/search/setup.html
还有详细的说明添加它。
答案 1 :(得分:1)
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;
}
答案 2 :(得分:0)
- 如何在ActionBar上为ListView过滤添加EditText?
醇>
请参阅Commonsware的this answer。更清楚的是,他的sample project将成功。
- 如何在EditText和图标之间更改ActionBar?
醇>
只需覆盖onOptionItemSelected
并尝试设置该菜单项的可见性。
MenuItem item = menu.findItem(R.id.my_item);
item.setVisible(false);
或者,如果您想完全掌控,请尝试customize your action bar