玩Android项目开发6-----体系页面(SearchView查询功能)
16lz
2021-01-24
不管是在主页面,还是在体系界面,都存在查询功能,根据输入的关键字搜索,在之前的博客中,有使用到SearchView,但是具体的逻辑功能还没有实现,现在来实现一下功能。
1、输入作者,查询作者的文章。
SearchView
有一个监听器是setOnQueryTextListener
,有两个重写方法,分别是onQueryTextSubmit
和onQueryTextChange
,当手机键盘点击搜索时,回调的是onQueryTextSubmit
方法,当删除输入值,重新输入时,回调的是onQueryTextChange
,但是执行搜索的还是第一个方法,测试一下:
sv_search.setOnQueryTextListener(new SearchView.OnQueryTextListener() { @Override public boolean onQueryTextSubmit(String query) { //响应键盘的确认按钮 query是输入的值 Log.e("TAG","执行搜索的值是===="+query); return false; } @Override public boolean onQueryTextChange(String newText) { //当搜索关键字修改时,回调这个方法 newText就是新的关键字 Log.e("TAG","当前修改的搜索值是===="+newText); return false; } });
2020-02-15 20:36:00.126 31128-31128/com.example.wanandroid E/TAG: 当前修改的搜索值是====Android2020-02-15 20:36:00.594 31128-31128/com.example.wanandroid E/TAG: 执行搜索的值是====Android
所以只需要在onQueryTextSubmit
进行数据请求就行。
@Override public boolean onQueryTextSubmit(String query) { //响应键盘的确认按钮 query是输入的值 mPresenter.getArticleByAuthor(0,query); Log.e("TAG","执行搜索的值是===="+query); return false; }
使用我们之前设置的一个RecyclerView适配器,将数据显示出来。
@Override public void showResult(List<SystemArticleBean.DataBean.DatasBean> datas) { //之前的页面不再显示 ll_search.setVisibility(View.GONE); tv_hot.setVisibility(View.GONE); tv_url.setVisibility(View.GONE); fl_url.setVisibility(View.GONE); fl_search.setVisibility(View.GONE); sysAdapter = new SystemArticleAdapter(this,datas); sysAdapter.setOnItemClickListener(new SystemArticleAdapter.onItemClickListener() { @Override public void onClick(int position) { String link = datas.get(position).getLink(); loadUrl(link); } }); rv_search.setLayoutManager(new GridLayoutManager(this,GridLayoutManager.VERTICAL)); rv_search.setAdapter(sysAdapter); //设置边距 rv_search.addItemDecoration(new RvItemDistance(RvItemDistance.px2dp(8))); }
看效果:
更多相关文章
- 调用Android中的软键盘
- Android(安卓)SDK Command line tools运行sdkmanager报告Warning
- 《BAT大咖助力 全面升级Android面试笔记》学习笔记
- phonegap底层原理学习和研究(一)
- Android学习之界面篇(二)Android(安卓)AnimationSet简单使用
- View的事件分发机制解析
- Android带有删除按钮的EditText:EditTextWithDeleteButton
- Android中触摸事件传递过程
- Android(安卓)Studio 如何录屏