效果圖


這個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
