Android记事本在菜单栏添加搜索按钮方法
效果图


这个app结构和我之前将记事本开发的博客基本一致,我这里直接讲一下怎样添加
使用的开发软件为android studio
首先在res目录下新建文件夹menu,添加目录布局文件main_menu


之后在main_menu中添加如下代码
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"> <item
android:id="@+id/search"
android:icon="@drawable/ic_search_black_24dp"/这里设置图标,可以自由选择,我是在drawable下添加了放大镜的图标并在此引用
android:title="Search"
app:actionViewClass="android.widget.SearchView"
app:showAsAction="always"
></item>
</menu>
之后在Mainactivity中重写onCreateOptionsMenu(Menu menu)函数,监听等功能都在此实现
public boolean onCreateOptionsMenu(Menu menu)
{
getMenuInflater().inflate(R.menu.main_menu,menu);
MenuItem search=menu.findItem(R.id.search);
SearchView mysearchview=(SearchView)search.getActionView();
mysearchview.setQueryHint("搜索");
mysearchview.setOnQueryTextListener(new SearchView.OnQueryTextListener(){
@Override
//当提交搜索框内容后执行的方法
public boolean onQueryTextSubmit(String query) {
return false;
} @Override
//当搜索框内内容改变时执行的方法
public boolean onQueryTextChange(String newText) {
refresh(newText);//数据更新函数,newText为获取到的搜索框中内容
return false;
}
});
return super.onCreateOptionsMenu(menu); }
更新函数
void refresh(String key)
{ SimpleAdapter adapter = new SimpleAdapter(this,MainActivity.this.mytable.getdata(key), R.layout.list
, new String[]{"id","text","time"},
new int[]{R.id.id,R.id.text,R.id.time});
ListView listView=(ListView)findViewById(R.id.vi);
listView.setAdapter(adapter); }
这里附上数据库操作类中getdata()方法
public List<Map<String,Object>> getdata(String key)
{List<Map<String,Object>>list=new ArrayList<Map<String,Object>>();
Map<String,Object> map=new HashMap<String,Object>(); String sql="SELECT id,text,time FROM "+TABLENAME+" WHERE text LIKE '%"+key+"%' OR time LIKE '%"+key+"%'";
Cursor result =this.db.rawQuery(sql,null);
for(result.moveToFirst();!result.isAfterLast();result.moveToNext())
{
map=new HashMap<String,Object>();
map.put("id",result.getInt(0));
map.put("text",result.getString(1));
map.put("time",result.getString(2));
list.add(map);
}
return list;}
讲得比较笼统,具体的文件结构还请参照我之前的随笔https://www.cnblogs.com/liuleliu/p/12230819.html
Android记事本在菜单栏添加搜索按钮方法的更多相关文章
- android 监控软键盘确定 搜索 按钮并赋予点击事件
在android的实践开发中,为了界面的美观,往往那些搜索框并没有带搜索按钮,而是调用了软键盘的搜索按钮,完成这次时间 1 2 好吧!直接上代码! <EditText android:id=&q ...
- Android中通过ActionBar为标题栏添加搜索以及分享视窗
在Android3.0之后,Google对UI导航设计上进行了一系列的改革,其中有一个非常好用的新功能就是引入的ActionBar,他用于取代3.0之前的标题栏,并提供更为丰富的导航效果.Action ...
- UI自动化测试:App的WebView页面中,当搜索栏无搜索按钮时处理方法
一.遇到的问题 在做移动端的UI自动化测试时,经常会遇到上图所示的搜索框,这里有个麻烦就是搜索框没有"搜索"按钮,UI自动化测试时不能确认搜索. 要解决这个问题,我们可以通过 dr ...
- android studio 添加get,set方法快捷方式
android studio 添加get,set方法快捷方式
- destoon模块自定义字段的添加并让其支持搜索的方法
今天看了看模块设置里的自定义字段功能的用法,试着加了个新字段glry,设置了值,然后去数据库moduleid的article表看,字段成功加上了. 于是去template下article文件夹的lis ...
- WPF实用指南一:在WPF窗体的边框中添加搜索框和按钮
原文:WPF实用指南一:在WPF窗体的边框中添加搜索框和按钮 在边框中加入一些元素,在应用程序的界面设计中,已经开始流行起来.特别是在浏览器(Crome,IE,Firefox,Opera)中都有应用. ...
- MFC基于对话框风格按钮控件添加图片的方法(大神止步)
菜鸟还在研究这个东西,大神就不要看了.一直都在觉得用VC或VS建立的对话框总是全灰色感觉太单调了,如果可以在上面添加一些漂亮的图片就好了,今天终于实现了.其实挺简单的,下面就分几个步骤讲一下: 第一步 ...
- Android:认识R类、findViewById方法查找组件、@string查找字符、@color查找颜色、@drawable查找图片、@dimen某个组件尺寸定义、项目引入资源国际化
导入 之前都是断断续续的看了一些于如何使用android开发的文章.资料等,到目前位置很多基础的东西都不清楚,于是去学习了别人的课程,才了认识了R类.findViewById方法查找组件.项目引入资源 ...
- IOS第二天-新浪微博 - 添加搜索框,弹出下拉菜单 ,代理的使用 ,HWTabBar.h(自定义TabBar)
********HWDiscoverViewController.m(发现) - (void)viewDidLoad { [super viewDidLoad]; // 创建搜索框对象 HWSearc ...
随机推荐
- Java程序员都需要懂的「反射」
前言 只有光头才能变强. 文本已收录至我的GitHub精选文章,欢迎Star:https://github.com/ZhongFuCheng3y/3y 今天来简单写一下Java的反射.本来没打算写反射 ...
- ASP.NET Core使用环境变量
前言 通常在应用程序开发到正式上线,在这个过程中我们会分为多个阶段,通常会有 开发.测试.以及正式环境等.每个环境的参数配置我们会使用不同的参数,因此呢,在ASP.NET Core中就提供了相关的环境 ...
- yum安装logstash 不生效
问题描述 根据logstash的配置方法写了一个配置文件,并放入/etc/logstash/conf.d/目录下,然后我们运行logstash # service logstash start Log ...
- windows服务器 IIS FTP服务
一.安装ftp,如果服务器没有,去windows组件里面装一下. 安装IIS,安装FTP(版本不同,选项不相同,这两项必选) 二.装完之后在IIS管理中心创建FTP站点 创建类型 ftp站点: ...
- [jQuery]jQuery和DOM对象互换(四)
DOM 和 jQuery 相互转换 DOM 转jQuery $(DOM对象) # (1)直接获取 $('video'); # (2)转换 $(DOM对象) var myVideo = document ...
- 使用A线程打印1-52,B线程打印A-Z,要求按照12A34B56C....5152Z的顺序进行交替打印
多线程同步问题,都需要用到监视器,用来监视资源是否可用.C++中使用condition_variable,Java中使用Condition来实现同步. 1. 实现思路 需要有一个全局变量控制当前该哪个 ...
- emmet笔记
1.div.div${div$}*6 生成 <div class="div1">div1</div> <div class="div2&qu ...
- 一招教你用数据可视化BI软件创建网店运营监控大屏
灯果数据可视化BI软件是新一代人工智能数据可视化大屏软件,内置丰富的大屏模板,可视化编辑操作,无需任何经验就可以创建属于你自己的大屏.大家可以在他们的官网下载软件. 本文以网店运营监控大屏为例为大家演 ...
- Vue中的递归组件
递归函数我们都再熟悉不过了,也就是函数自己调用自己.递归组件也是类似的,在组件的template内部使用组件自身.那递归组件有什么使用场景呢? 我们都知道树这个数据结构就是一种递归的结构,因此我们可以 ...
- 刷题94. Binary Tree Inorder Traversal
一.题目说明 题目94. Binary Tree Inorder Traversal,给一个二叉树,返回中序遍历序列.题目难度是Medium! 二.我的解答 用递归遍历,学过数据结构的应该都可以实现. ...