Android开发_记事本(7)
搜索实现
搜索图标的添加
main_menu
<item
android:id="@+id/action_search"
android:icon="?attr/menu_search"
app:showAsAction="always"
app:actionViewClass="androidx.appcompat.widget.SearchView"
android:title="Search"
/>
drawable
添加一个search图标,命名为:
ic_search_black_24dp.xml
styles.xml
添加一句
<item name="menu_search">@drawable/ic_search_black_24dp</item>
搜索功能的实现
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main_menu,menu);//渲染一个menu获取一个对象
MenuItem mSearch = menu.findItem(R.id.action_search);//定位
SearchView mSearchView = (SearchView) mSearch.getActionView();//创建一个搜索界面
mSearchView.setQueryHint("Search");//提示词(灰色透明字)
mSearchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {//对写入的内容进行监听
@Override
public boolean onQueryTextSubmit(String query) {
return false;
}
@Override
public boolean onQueryTextChange(String newText) {
adapter.getFilter().filter(newText); //Filter筛选器,按照newText搜索
return false;
}
});
return super.onCreateOptionsMenu(menu);
}
主要添加了这一段
MenuItem mSearch = menu.findItem(R.id.action_search);//定位
SearchView mSearchView = (SearchView) mSearch.getActionView();//创建一个搜索界面
mSearchView.setQueryHint("Search");//提示词(灰色透明字)
mSearchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {//对写入的内容进行监听
@Override
public boolean onQueryTextSubmit(String query) {
return false;
}
@Override
public boolean onQueryTextChange(String newText) {
adapter.getFilter().filter(newText); //Filter筛选器,按照newText搜索
return false;
}
效果: