溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

怎么在Android中使用EditText實(shí)現(xiàn)一個(gè)搜索框功能

發(fā)布時(shí)間:2021-01-20 16:45:53 來源:億速云 閱讀:720 作者:Leah 欄目:移動開發(fā)

本篇文章給大家分享的是有關(guān)怎么在Android中使用EditText實(shí)現(xiàn)一個(gè)搜索框功能,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

EditText簡介:

ED(EditText的簡稱)在開發(fā)中也是經(jīng)常使用到的一個(gè)控件, 也是一個(gè)比較重要的組件,可以說它是用戶跟應(yīng)用進(jìn)行數(shù)據(jù)傳輸?shù)拇翱?,比如?shí)現(xiàn)一個(gè)登陸界面, 需要用戶輸入賬號和密碼,然后我們開發(fā)者獲取到用戶輸入的內(nèi)容,提交給服務(wù)區(qū)進(jìn)行判斷再做相應(yīng)的處理。

int search_mag_icon_id = sv_search.getContext().getResources().getIdentifier("android:id/search_mag_icon", null, null);
ImageView search_mag_icon = (ImageView)sv_search.findViewById(search_mag_icon_id);//獲取搜索圖標(biāo)
search_mag_icon.setImageResource(R.drawable.search_icon);//將圖標(biāo)的資源換掉即可。

其實(shí)就是找到searchView的資源文件,并替換掉就可以了。

同理,close圖標(biāo)也可以替換,只要修改"android:id/search_mag_icon" 為"android:id/search_close_btn"即可。

文本框的字體顏色大小等: "android:id/search_src_text"

不要問我怎么知道的,searchview源碼里寫的呀。需要注意的是,修改文本框顏色和大小的時(shí)候,需要將view cast to textview或者edittext,源碼的配置文件里面這個(gè)框就是一個(gè)view,強(qiáng)轉(zhuǎn)一下即可。

EditText實(shí)現(xiàn)SearchView功能

前面searchview里面,如果要將鍵盤的換行改成搜索,是要修改imeOptions的屬性即可,而Edittext的屬性里其實(shí)是有這個(gè)的,所以在edittext的布局中添加imeOptions = “actionSearch” ,但是只添加這個(gè)屬性是無法實(shí)現(xiàn)的。

 <EditText 
    android:inputType="text" 
    android:singleLine="true" 
    android:imeOptions="actionSearch" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" />

其他的基礎(chǔ)屬性可以任意添加,再運(yùn)行app發(fā)現(xiàn)輸入文字后,換行確實(shí)換成搜索了。前三個(gè)屬性一個(gè)都不能少。這樣的話,我們只要在添加一個(gè)搜索的點(diǎn)擊事件即可了:

et_earch.setOnEditorActionListener(new TextView.OnEditorActionListener() { 
@Override 
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {    
 if(actionId == EditorInfo.IME_ACTION_SEARCH){  
//如果actionId是搜索的id,則進(jìn)行下一步的操作  
  doSomething() }  
 return false; }
});

實(shí)現(xiàn)其中的onEditorAction方法即可。

剩下和searchView還不一樣的就是沒有close的按鈕,其實(shí)監(jiān)聽一下edittext的輸入就可以了,后續(xù)我就沒做了,addTextChangedListener應(yīng)該能實(shí)現(xiàn),思路是:如果edittext里面有問題,則顯示close的button,如果沒有文字,則gone掉布局里面的close button。

以上就是怎么在Android中使用EditText實(shí)現(xiàn)一個(gè)搜索框功能,小編相信有部分知識點(diǎn)可能是我們?nèi)粘9ぷ鲿姷交蛴玫降?。希望你能通過這篇文章學(xué)到更多知識。更多詳情敬請關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI