Android搜索框組件SearchView的基本使用方法
SearchView是android系統(tǒng)中內(nèi)置的一個(gè)搜索框組件,可以很方便在添加在用戶界面之上,但是也帶來(lái)了一些問(wèn)題,那就是searchview的UI是固定的,定制起來(lái)會(huì)很麻煩,如果對(duì)SearchView的要求比較高,完全可以采用button和EditText自己實(shí)現(xiàn)。這里先簡(jiǎn)單的說(shuō)說(shuō)SearchView的使用:
main.xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".Main" > <SearchView android:id="@+id/sv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:imeOptions="actionGo" /> </LinearLayout>
在顯示suggestion的時(shí)候會(huì)用到下面的布局文件:mytextview.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="50sp" android:orientation="vertical" > <TextView android:id="@+id/textview" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center_vertical" android:paddingLeft="5sp" android:textSize="18sp" /> </LinearLayout>
main.java:
package com.app.main; import java.lang.reflect.Field; import android.app.Activity; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.os.Bundle; import android.view.View; import android.widget.ImageView; import android.widget.ListView; import android.widget.SearchView; import android.widget.SearchView.OnQueryTextListener; import android.widget.SimpleCursorAdapter; import android.widget.Toast; public class Main extends Activity { SearchView sv = null; ListView lv = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); sv = (SearchView) this.findViewById(R.id.sv); sv.setIconifiedByDefault(false); sv.setSubmitButtonEnabled(true); sv.setQueryHint("查詢"); //通過(guò)反射,修改默認(rèn)的樣式,可以從android的search_view.xml中找到需要的組件 try { Field field = sv.getClass().getDeclaredField("mSubmitButton"); field.setAccessible(true); ImageView iv = (ImageView) field.get(sv); iv.setImageDrawable(this.getResources().getDrawable( R.drawable.pointer)); } catch (Exception e) { e.printStackTrace(); } Cursor cursor = this.getTestCursor(); @SuppressWarnings("deprecation") SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, R.layout.mytextview, cursor, new String[] { "tb_name" }, new int[] { R.id.textview }); sv.setSuggestionsAdapter(adapter); sv.setOnQueryTextListener(new OnQueryTextListener() { @Override public boolean onQueryTextChange(String str) { return false; } @Override public boolean onQueryTextSubmit(String str) { Toast.makeText(Main.this, str, Toast.LENGTH_SHORT).show(); return false; } }); } //添加suggestion需要的數(shù)據(jù) public Cursor getTestCursor() { SQLiteDatabase db = SQLiteDatabase.openOrCreateDatabase( this.getFilesDir() + "/my.db3", null); Cursor cursor = null; try { String insertSql = "insert into tb_test values (null,?,?)"; db.execSQL(insertSql, new Object[] { "aa", 1 }); db.execSQL(insertSql, new Object[] { "ab", 2 }); db.execSQL(insertSql, new Object[] { "ac", 3 }); db.execSQL(insertSql, new Object[] { "ad", 4 }); db.execSQL(insertSql, new Object[] { "ae", 5 }); String querySql = "select * from tb_test"; cursor = db.rawQuery(querySql, null); } catch (Exception e) { String sql = "create table tb_test (_id integer primary key autoincrement,tb_name varchar(20),tb_age integer)"; db.execSQL(sql); String insertSql = "insert into tb_test values (null,?,?)"; db.execSQL(insertSql, new Object[] { "aa", 1 }); db.execSQL(insertSql, new Object[] { "ab", 2 }); db.execSQL(insertSql, new Object[] { "ac", 3 }); db.execSQL(insertSql, new Object[] { "ad", 4 }); db.execSQL(insertSql, new Object[] { "ae", 5 }); String querySql = "select * from tb_test"; cursor = db.rawQuery(querySql, null); } return cursor; } }
實(shí)現(xiàn)的效果如下:
以上就是搜索框組件SearchView的基本使用方法,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- Android Studio搜索功能(查找功能)及快捷鍵圖文詳解
- Android實(shí)現(xiàn)搜索功能并本地保存搜索歷史記錄
- Android自定義View實(shí)現(xiàn)搜索框(SearchView)功能
- Android仿簡(jiǎn)書(shū)動(dòng)態(tài)searchview搜索欄效果
- Android百度地圖實(shí)現(xiàn)搜索和定位及自定義圖標(biāo)繪制并點(diǎn)擊時(shí)彈出泡泡
- Android搜索框SearchView屬性和用法詳解
- Android SearchView搜索框組件的使用方法
- Android遍歷所有文件夾和子目錄搜索文件
- Android ListView用EditText實(shí)現(xiàn)搜索功能效果
- Android實(shí)現(xiàn)簡(jiǎn)單動(dòng)態(tài)搜索功能
相關(guān)文章
Android用Scroller實(shí)現(xiàn)一個(gè)可向上滑動(dòng)的底部導(dǎo)航欄
本篇文章主要介紹了Android用Scroller實(shí)現(xiàn)一個(gè)可上滑的底部導(dǎo)航欄,具有一定的參考價(jià)值,有興趣的小伙伴們可以參考一下2017-07-07Android開(kāi)發(fā)必備:秒殺真機(jī)超快模擬器Genymotion介紹
這篇文章主要介紹了Android開(kāi)發(fā)必備:秒殺真機(jī)超快模擬器Genymotion介紹,本文直接用圖片說(shuō)明Genymotion的安裝和模擬效果,并提供官網(wǎng),需要的朋友可以參考下2015-04-04android中ViewPager結(jié)合Fragment進(jìn)行無(wú)限滑動(dòng)
本篇文章中主要介紹了android中ViewPager結(jié)合Fragment進(jìn)行無(wú)限滑動(dòng),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2017-03-03Android之解析JSON數(shù)據(jù)示例(android原生態(tài),F(xiàn)astJson,Gson)
本篇文章主要介紹了Android之解析JSON數(shù)據(jù)示例,主要使用android原生態(tài)代碼解析,F(xiàn)astJson,Gson三種方法,有興趣的可以了解一下。2017-02-02Compose?for?Desktop?鼠標(biāo)事件示例demo
這篇文章主要為大家介紹了Compose?for?Desktop?鼠標(biāo)事件示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03利用Warensoft Stock Service編寫(xiě)高頻交易軟件
本文主要介紹了利用Warensoft Stock Service編寫(xiě)高頻交易軟件的方法步驟,具有一定的參考價(jià)值,下面跟著小編一起來(lái)看下吧2017-01-01詳解Flutter中l(wèi)istview的高級(jí)用法
一般我們使用Listview的方式是構(gòu)建要展示的item,然后將這些item傳入ListView的構(gòu)造函數(shù)即可,通常情況下這樣做是夠用了,但是不排除我們會(huì)有一些其他的特殊需求。今天我們會(huì)來(lái)講解一下ListView的一些高級(jí)用法,希望對(duì)大家有所幫助2023-01-01Android開(kāi)發(fā)獲取短信的內(nèi)容并截取短信
本文給大家介紹android開(kāi)發(fā)獲取短信內(nèi)容并截取短息的相關(guān)內(nèi)容,本文代碼簡(jiǎn)單易懂,感興趣的朋友一起學(xué)習(xí)吧2015-12-12