SearchView的簡單使用和模擬搜尋
android SearchView其實就是EditView新增了一些方法,可以達到搜尋的功能,首先先看它的佈局檔案,這是v7包下的SearchView
<android.support.v7.widget.SearchView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/find_serach"
app:queryHint="請輸入搜尋的文字"
></android.support.v7.widget.SearchView>
其中queryHint就是預設文字,這裡還可以設定自定義的文字顏色和背景,剩下主要是程式碼部分,我先為大家介紹幾個方法,我親自測試過的:
1.
setIconifiedByDefault()是設定搜尋框是否預設展開;
2.
setSubmitButtonEnabled()是否設定一個提交按鈕;
其他功能看下錶:
SearchView屬性
屬性名稱 | 相關方法 | 描述 |
---|---|---|
android:iconifiedByDefault | setIconifiedByDefault(boolean) | 設定搜尋圖示是否顯示在搜尋框內 |
android:imeOptions | setImeOptions(int) | 設定輸入法搜尋選項欄位,預設是搜尋,可以是:下一頁、傳送、完成等 |
android:inputType | setInputType(int) | 設定輸入型別 |
android:maxWidth | setMaxWidth(int) | 設定最大寬度 |
android:queryHint | setQueryHint(CharSequence) | 設定查詢提示字串 |
監聽方法:
setOnQueryTextListener();
這是監聽我們搜尋時,和搜尋後的方法,它內含兩個方法
onQueryTextSubmit(String query)這是提交時的方法,可以根據你提交的內容進行相應的搜尋操作,
onQueryTextChange(String newText)這是在搜尋框內輸入內容時,可以像百度,淘寶,搜尋時模糊推薦選項,供你選擇;
其他也沒什麼了,接下來看完整程式碼:
public class FindActivity extends AppCompatActivity implements SearchView.OnQueryTextListener { private SearchView searchView; private List<String> data=new ArrayList<>(); private ListView lv; private List<String> arr; @Override protected void onCreate(Bundle savedInstanceState) { getSupportActionBar().hide(); super.onCreate(savedInstanceState); arr = new ArrayList<>(); searchView = (SearchView) findViewById(R.id.find_serach); searchView.setIconifiedByDefault(false); searchView.setSubmitButtonEnabled(true); searchView.setOnQueryTextListener(this); lv = (ListView) findViewById(R.id.lv_query_name); for (int i = 0; i < 10; i++) { arr.add("data"+i); } lv.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_expandable_list_item_1, arr)); //給listVIew設定可過濾的操作 lv.setTextFilterEnabled(true); } @Override public boolean onQueryTextSubmit(String query) { //跳轉到手機自帶的瀏覽器百度或者谷歌 Intent intent = new Intent(); intent.setAction(Intent.ACTION_WEB_SEARCH); intent.putExtra(SearchManager.QUERY, query); startActivity(intent); return false; } @Override public boolean onQueryTextChange(String newText) { //判斷是否輸入內容,並進入過濾操作 if(!TextUtils.isEmpty(newText)) { lv.setFilterText(newText); } else { lv.clearTextFilter(); } return false; } }
分享到此結束,請多多指教,希望對你們有些幫助。
相關文章
- 前端實時搜尋框模擬前端
- ElasticSearch 簡單的 搜尋 聚合 分析Elasticsearch
- Elasticsearch 實現簡單搜尋Elasticsearch
- DFS與BFS——理解簡單搜尋(中文虛擬碼+例題)
- 強化學習(十八) 基於模擬的搜尋與蒙特卡羅樹搜尋(MCTS)強化學習
- 模擬簡單的動態代理
- 自制簡單的詩歌搜尋系統
- 簡單易用的前端模擬資料前端
- 【簡單搜尋】POJ 2251 Dugeon MasterAST
- EasyFind for Mac操作簡單的檔案搜尋工具Mac
- JS模擬瀏覽器全域性搜尋功能實現JS瀏覽器
- Linux 搜尋檔案和資料夾的 4 種簡單方法Linux
- 簡單模擬javaScript物件導向JavaScript物件
- 模擬data block lost write的簡單方法BloC
- 簡單機器語言的模擬 (轉)
- 簡單檔案搜尋:Find Any File for MacMac
- Meteor+MongoDB 實現簡單的即時搜尋MongoDB
- 簡單的string類的模擬實現
- 文字獲取和搜尋引擎簡介
- js使用yield模擬多執行緒的方法簡單介紹JS執行緒
- 使用Scala模擬簡單的RPC通訊,Socket程式設計RPC程式設計
- 使用 JavaScript 實現簡單候選項推薦功能(模糊搜尋)JavaScript
- Android中SearchView的使用AndroidView
- Spring 架構的簡單模擬實現Spring架構
- laravel 簡單限制搜尋引擎爬蟲頻率Laravel爬蟲
- HDU 1241Oil Deposits(簡單搜尋題)
- 無人機叢集自組織搜尋模擬模型設計與實現無人機模型
- js MIPS乘法模擬的方法簡單介紹JS
- 實戰:Nodejs+Mongodb+Elasticsearch 實現簡單的搜尋NodeJSMongoDBElasticsearch
- 簡單實現.NET Hook與事件模擬Hook事件
- sed+awk模擬簡單sql查詢SQL
- 使用 json-server 簡單完成CRUD模擬後臺資料JSONServer
- VIM 搜尋命令使用方法和技巧
- (C語言)簡單明瞭的 陣列模擬棧+ (C++)陣列模擬棧C語言陣列C++
- 使用Google百度等搜尋引擎的常用搜尋技巧Go
- Proteus實現簡單51程式的設計與模擬
- oracle實用sql(13)--併發簡單模擬OracleSQL
- HtmlUnit 爬蟲簡單案例——模擬登陸CSDNHTML爬蟲