效果图

这个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记事本在菜单栏添加搜索按钮方法的更多相关文章

  1. android 监控软键盘确定 搜索 按钮并赋予点击事件

    在android的实践开发中,为了界面的美观,往往那些搜索框并没有带搜索按钮,而是调用了软键盘的搜索按钮,完成这次时间 1 2 好吧!直接上代码! <EditText android:id=&q ...

  2. Android中通过ActionBar为标题栏添加搜索以及分享视窗

    在Android3.0之后,Google对UI导航设计上进行了一系列的改革,其中有一个非常好用的新功能就是引入的ActionBar,他用于取代3.0之前的标题栏,并提供更为丰富的导航效果.Action ...

  3. UI自动化测试:App的WebView页面中,当搜索栏无搜索按钮时处理方法

    一.遇到的问题 在做移动端的UI自动化测试时,经常会遇到上图所示的搜索框,这里有个麻烦就是搜索框没有"搜索"按钮,UI自动化测试时不能确认搜索. 要解决这个问题,我们可以通过 dr ...

  4. android studio 添加get,set方法快捷方式

    android studio 添加get,set方法快捷方式

  5. destoon模块自定义字段的添加并让其支持搜索的方法

    今天看了看模块设置里的自定义字段功能的用法,试着加了个新字段glry,设置了值,然后去数据库moduleid的article表看,字段成功加上了. 于是去template下article文件夹的lis ...

  6. WPF实用指南一:在WPF窗体的边框中添加搜索框和按钮

    原文:WPF实用指南一:在WPF窗体的边框中添加搜索框和按钮 在边框中加入一些元素,在应用程序的界面设计中,已经开始流行起来.特别是在浏览器(Crome,IE,Firefox,Opera)中都有应用. ...

  7. MFC基于对话框风格按钮控件添加图片的方法(大神止步)

    菜鸟还在研究这个东西,大神就不要看了.一直都在觉得用VC或VS建立的对话框总是全灰色感觉太单调了,如果可以在上面添加一些漂亮的图片就好了,今天终于实现了.其实挺简单的,下面就分几个步骤讲一下: 第一步 ...

  8. Android:认识R类、findViewById方法查找组件、@string查找字符、@color查找颜色、@drawable查找图片、@dimen某个组件尺寸定义、项目引入资源国际化

    导入 之前都是断断续续的看了一些于如何使用android开发的文章.资料等,到目前位置很多基础的东西都不清楚,于是去学习了别人的课程,才了认识了R类.findViewById方法查找组件.项目引入资源 ...

  9. IOS第二天-新浪微博 - 添加搜索框,弹出下拉菜单 ,代理的使用 ,HWTabBar.h(自定义TabBar)

    ********HWDiscoverViewController.m(发现) - (void)viewDidLoad { [super viewDidLoad]; // 创建搜索框对象 HWSearc ...

随机推荐

  1. Cheat Sheet pyspark RDD(PySpark 速查表)

  2. Java框架之SpringSecurity-权限系统

    SpringSecurity SpringSecurity融合Spring技术栈,提供JavaEE应用的整体安全解决方案:提供全面的安全服务.Spring Security支持广泛的认证模型 模块划分 ...

  3. Import This - The Zen of Python

    The Zen of Python -- by Tim Peters Beautiful is better than ugly.Explicit is better than implicit.Si ...

  4. python xlrd操作

    python里面的xlrd模块详解(一)   那我就一下面积个问题对xlrd模块进行学习一下: 1.什么是xlrd模块? 2.为什么使用xlrd模块? 3.怎样使用xlrd模块? 1.什么是xlrd模 ...

  5. implements Serializable有什么作用?

    没有implements Serializable,你就不能通过rmi(包括ejb)提供远程调用.serialization 允许你将实现了Serializable接口的对象转换为字节序列,这些字节序 ...

  6. hadoop3自学入门笔记(1)——虚拟机安装和网络配置

    前言 年过30惶惶不安,又逢疫情,还是不断学习,强化自己的能力.hadoop的视频和书籍在15年的时候就看过,但是一直没动手实践过,要知道技术不经过实战,一点提升也没有.因此下定决心边学边做,希望能有 ...

  7. 插入数据失败提示: Setting autocommit to false on JDBC Connection 自动提交失败

    来源:https://blog.csdn.net/qq_42799475/article/details/102742109 今天在执行mybstis的测试时,明明已经写好了插入语句但是数据库没有插入 ...

  8. 如何优雅的封装requests

    搭建接口自动化测试框架,一般都要对post/get请求做封装. 一般的封装过程是, class MyRequest: def my_post(): """do somet ...

  9. Github上优秀的.NET Core项目

    Github上优秀的.NET Core开源项目的集合.内容包括:库.工具.框架.模板引擎.身份认证.数据库.ORM框架.图片处理.文本处理.机器学习.日志.代码分析.教程等. Github地址:htt ...

  10. Oracle查询如何才能行转列?-sunziren

    原创文章,转载务必注明出处. 今天工作的时候,碰到一个问题,涉及oracle行转列,用了半小时解决,因此在这里写个博客记录一下解决办法. 原数据库表的数据是: 想要达到的效果是: 经过思考,这是一个o ...