Android利用EditText如何實(shí)現(xiàn)搜索框詳解
EditText簡介:
ED(EditText的簡稱)在開發(fā)中也是經(jīng)常使用到的一個控件, 也是一個比較重要的組件,可以說它是用戶跟應(yīng)用進(jìn)行數(shù)據(jù)傳輸?shù)拇翱冢热鐚?shí)現(xiàn)一個登陸界面, 需要用戶輸入賬號和密碼,然后我們開發(fā)者獲取到用戶輸入的內(nèi)容,提交給服務(wù)區(qū)進(jìn)行判斷再做相應(yīng)的處理。
引言
新的app中有search的功能需要實(shí)現(xiàn),就是一個輸入框,輸入文字后鍵盤出來搜索字樣,然后點(diǎn)擊搜索進(jìn)行網(wǎng)絡(luò)請求。之前掉坑里了,一直嘗試用searchview來實(shí)現(xiàn),但是自定義樣式上實(shí)在是坑,最后發(fā)現(xiàn)其實(shí)EditText就可以實(shí)現(xiàn),也是醉了。
SearchView的自定義樣式
我還只實(shí)現(xiàn)了部分自定義,輸入框那里底部的藍(lán)色線條實(shí)在不知道怎么清除掉,有大神可以指教一下。
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源碼里寫的呀。需要注意的是,修改文本框顏色和大小的時候,需要將view cast to textview或者edittext,源碼的配置文件里面這個框就是一個view,強(qiáng)轉(zhuǎn)一下即可。
EditText實(shí)現(xiàn)SearchView功能
前面searchview里面,如果要將鍵盤的換行改成搜索,是要修改imeOptions的屬性即可,而Edittext的屬性里其實(shí)是有這個的,所以在edittext的布局中添加imeOptions = “actionSearch”
,但是只添加這個屬性是無法實(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í)換成搜索了。前三個屬性一個都不能少。這樣的話,我們只要在添加一個搜索的點(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。
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關(guān)文章
Android自定義ViewGroup實(shí)現(xiàn)彈性滑動效果
這篇文章主要為大家詳細(xì)介紹了Android自定義ViewGroup實(shí)現(xiàn)彈性滑動效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-12-12Android Canvas drawText文字居中的一些事(圖解)
這篇文章主要給大家介紹了關(guān)于Android Canvas drawText文字居中的一些事,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-12-12android選項(xiàng)卡TabHost功能用法詳解
這篇文章主要為大家詳細(xì)介紹了android選項(xiàng)卡TabHost的功能用法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-04-04Android studio實(shí)現(xiàn)刮刮樂的方法
這篇文章主要為大家詳細(xì)介紹了Android studio實(shí)現(xiàn)刮刮樂的兩種方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-10-10Android提高之MediaPlayer播放網(wǎng)絡(luò)視頻的實(shí)現(xiàn)方法
這篇文章主要介紹了Android的MediaPlayer播放網(wǎng)絡(luò)視頻的實(shí)現(xiàn)方法,是一個非常實(shí)用的功能,需要的朋友可以參考下2014-08-08Android 自定義Dialog去除title導(dǎo)航欄的解決方法
今天小編就為大家分享一篇Android 自定義Dialog去除title導(dǎo)航欄的解決方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-07-07Android實(shí)現(xiàn)左滑退出Activity的完美封裝
這篇文章主要介紹了Android實(shí)現(xiàn)左滑退出Activity的完美封裝,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12Android實(shí)現(xiàn)懸浮窗全系統(tǒng)版本
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)懸浮窗全系統(tǒng)版本,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-11-11autojs模仿QQ長按彈窗菜單實(shí)現(xiàn)示例
這篇文章主要為大家介紹了autojs模仿QQ長按彈窗菜單實(shí)現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-01-01