效果图
这个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