Android中AutoCompleteTextView自動(dòng)提示
我們使用控件AutoCompleteTextView 自動(dòng)提示時(shí),有時(shí)需要設(shè)置BaseAdapter,設(shè)置BaseAdapter時(shí),需要實(shí)現(xiàn)Filterable,手動(dòng)進(jìn)行篩選。
常用屬性
布局只設(shè)置了至少輸入一個(gè)字符顯示提示
<AutoCompleteTextView android:id="@+id/at" android:completionThreshold="1" android:layout_width="match_parent" android:layout_height="wrap_content" />
private List<String> allData = new ArrayList<>(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); allData.add("aa"); allData.add("bb"); allData.add("cc"); allData.add("dd"); allData.add("abc"); allData.add("bcd"); AutoCompleteTextView textView = (AutoCompleteTextView) findViewById(R.id.at); MyAdapter adapter = new MyAdapter(); textView.setAdapter(adapter); }
adapter適配器代碼
class MyAdapter extends BaseAdapter implements Filterable { DataFilter filter; ArrayList<String> data; @Override public int getCount() { if (data != null && data.size() > 0) { return data.size(); } return 0; } @Override public Object getItem(int i) { return null; } @Override public long getItemId(int i) { return 0; } @Override public View getView(int position, View view, ViewGroup viewGroup) { TextView textView = new TextView(MainActivity.this); textView.setText(data.get(position)); return textView; } @Override public Filter getFilter() { if (filter == null) { filter = new DataFilter(); } return filter; } private class DataFilter extends Filter { @Override protected FilterResults performFiltering(CharSequence prefix) { //查詢結(jié)果保存到FilterResults對(duì)象里 FilterResults results = new FilterResults(); List<String> queryData = new ArrayList<>(); for (int i = 0; i < allData.size(); i++) { if (allData.get(i).contains(prefix.toString())) { queryData.add(allData.get(i)); } } results.values = queryData; results.count = queryData.size(); return results; } /** * 更新UI */ @Override protected void publishResults(CharSequence constraint, FilterResults results) { List<String> queryData = (List<String>) results.values; if (data == null) { data = new ArrayList<>(); } if (data.size() > 0) { data.clear(); } if (queryData != null && queryData.size() > 0) for (String string : queryData) { data.add(string); notifyDataSetChanged(); } } } }
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Android用戶輸入自動(dòng)提示控件AutoCompleteTextView使用方法
- Android自動(dòng)獲取輸入短信驗(yàn)證碼庫(kù)AutoVerifyCode詳解
- Android AutoWrapTextView中英文排版問(wèn)題的解決方法
- Android中使用 AutoCompleteTextView 實(shí)現(xiàn)手機(jī)號(hào)格式化附帶清空歷史的操作
- Android自動(dòng)編輯文本框(AutoCompleteTextView)使用方法詳解
- Android仿新浪微博oauth2.0授權(quán)界面實(shí)現(xiàn)代碼(2)
- android中AutoCompleteTextView的簡(jiǎn)單用法(實(shí)現(xiàn)搜索歷史)
- Android仿百度谷歌搜索自動(dòng)提示框AutoCompleteTextView簡(jiǎn)單應(yīng)用示例
- 關(guān)于Android HTML5 audio autoplay無(wú)效問(wèn)題的解決方案
- Android AutoCompleteTextView自動(dòng)提示文本框?qū)嵗a
- Android App開(kāi)發(fā)的自動(dòng)化測(cè)試框架UI Automator使用教程
- Android中AutoCompleteTextView與TextWatcher結(jié)合小實(shí)例
- Android AutoValue使用和擴(kuò)展庫(kù)
相關(guān)文章
Android studio實(shí)現(xiàn)簡(jiǎn)易的計(jì)算器功能
這篇文章主要為大家詳細(xì)介紹了Android studio實(shí)現(xiàn)簡(jiǎn)易的計(jì)算器功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-05-05Android M(6.x)使用OkHttp包解析和發(fā)送JSON請(qǐng)求的教程
Android 6.0采用的SPDY支持HTTP上GZIP壓縮的傳輸,這使得OkHttp包的功能能夠進(jìn)一步被利用,本文我們來(lái)總結(jié)一下Android M(6.0)使用OkHttp包解析和發(fā)送JSON請(qǐng)求的教程2016-07-07Android控件之AnalogClock與DigitalClock用法實(shí)例分析
這篇文章主要介紹了Android控件之AnalogClock與DigitalClock用法,以實(shí)例形式分析了Android時(shí)鐘控件AnalogClock和DigitalClock用于顯示時(shí)間的具體使用技巧,需要的朋友可以參考下2015-09-09android文件存儲(chǔ)和SharedPreferences存儲(chǔ)的項(xiàng)目實(shí)例
本文主要介紹了android文件存儲(chǔ)和SharedPreferences存儲(chǔ)的項(xiàng)目實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-05-05Android App中實(shí)現(xiàn)相冊(cè)瀑布流展示的實(shí)例分享
這篇文章主要介紹了Android App中實(shí)現(xiàn)相冊(cè)瀑布流展示的實(shí)例分享,例子中利用到了緩存LruCache類的相關(guān)算法來(lái)解決大量加載問(wèn)題,需要的朋友可以參考下2016-04-04Android開(kāi)發(fā)之Adobe flash操作工具類
這篇文章主要介紹了Android開(kāi)發(fā)之Adobe flash操作工具類,可實(shí)現(xiàn)flash的安裝及判斷flash是否安裝等功能,需要的朋友可以參考下2017-12-12Android圖片翻轉(zhuǎn)動(dòng)畫(huà)簡(jiǎn)易實(shí)現(xiàn)代碼
Android圖片翻轉(zhuǎn)動(dòng)畫(huà)效果如何實(shí)現(xiàn),本文將給你一個(gè)驚喜,實(shí)現(xiàn)代碼已經(jīng)列出,需要的朋友可以參考下2012-11-11Android 中 android.view.WindowLeaked的解決辦法
這篇文章主要介紹了Android 中 android.view.WindowLeaked的解決辦法的相關(guān)資料,需要的朋友可以參考下2017-05-05Android 自定義加載動(dòng)畫(huà)Dialog彈窗效果的示例代碼
這篇文章主要介紹了Android 自定義加載動(dòng)畫(huà)Dialog彈窗效果,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-06-06Android繼承ViewGroup實(shí)現(xiàn)Scroll滑動(dòng)效果的方法示例
這篇文章主要介紹了Android繼承ViewGroup實(shí)現(xiàn)Scroll滑動(dòng)效果的方法,結(jié)合實(shí)例形式分析了Android滑動(dòng)效果的原理及擴(kuò)展ViewGroup實(shí)現(xiàn)滑動(dòng)功能的相關(guān)操作技巧,需要的朋友可以參考下2017-08-08