Android中AutoCompleteTextView自動提示
我們使用控件AutoCompleteTextView 自動提示時,有時需要設(shè)置BaseAdapter,設(shè)置BaseAdapter時,需要實(shí)現(xiàn)Filterable,手動進(jìn)行篩選。

常用屬性
布局只設(shè)置了至少輸入一個字符顯示提示
<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對象里
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();
}
}
}
}
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Android用戶輸入自動提示控件AutoCompleteTextView使用方法
- Android自動獲取輸入短信驗(yàn)證碼庫AutoVerifyCode詳解
- Android AutoWrapTextView中英文排版問題的解決方法
- Android中使用 AutoCompleteTextView 實(shí)現(xiàn)手機(jī)號格式化附帶清空歷史的操作
- Android自動編輯文本框(AutoCompleteTextView)使用方法詳解
- Android仿新浪微博oauth2.0授權(quán)界面實(shí)現(xiàn)代碼(2)
- android中AutoCompleteTextView的簡單用法(實(shí)現(xiàn)搜索歷史)
- Android仿百度谷歌搜索自動提示框AutoCompleteTextView簡單應(yīng)用示例
- 關(guān)于Android HTML5 audio autoplay無效問題的解決方案
- Android AutoCompleteTextView自動提示文本框?qū)嵗a
- Android App開發(fā)的自動化測試框架UI Automator使用教程
- Android中AutoCompleteTextView與TextWatcher結(jié)合小實(shí)例
- Android AutoValue使用和擴(kuò)展庫
相關(guān)文章
Android studio實(shí)現(xiàn)簡易的計(jì)算器功能
這篇文章主要為大家詳細(xì)介紹了Android studio實(shí)現(xiàn)簡易的計(jì)算器功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-05-05
Android M(6.x)使用OkHttp包解析和發(fā)送JSON請求的教程
Android 6.0采用的SPDY支持HTTP上GZIP壓縮的傳輸,這使得OkHttp包的功能能夠進(jìn)一步被利用,本文我們來總結(jié)一下Android M(6.0)使用OkHttp包解析和發(fā)送JSON請求的教程2016-07-07
Android控件之AnalogClock與DigitalClock用法實(shí)例分析
這篇文章主要介紹了Android控件之AnalogClock與DigitalClock用法,以實(shí)例形式分析了Android時鐘控件AnalogClock和DigitalClock用于顯示時間的具體使用技巧,需要的朋友可以參考下2015-09-09
android文件存儲和SharedPreferences存儲的項(xiàng)目實(shí)例
本文主要介紹了android文件存儲和SharedPreferences存儲的項(xiàng)目實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-05-05
Android App中實(shí)現(xiàn)相冊瀑布流展示的實(shí)例分享
這篇文章主要介紹了Android App中實(shí)現(xiàn)相冊瀑布流展示的實(shí)例分享,例子中利用到了緩存LruCache類的相關(guān)算法來解決大量加載問題,需要的朋友可以參考下2016-04-04
Android開發(fā)之Adobe flash操作工具類
這篇文章主要介紹了Android開發(fā)之Adobe flash操作工具類,可實(shí)現(xiàn)flash的安裝及判斷flash是否安裝等功能,需要的朋友可以參考下2017-12-12
Android圖片翻轉(zhuǎn)動畫簡易實(shí)現(xiàn)代碼
Android圖片翻轉(zhuǎn)動畫效果如何實(shí)現(xiàn),本文將給你一個驚喜,實(shí)現(xiàn)代碼已經(jīng)列出,需要的朋友可以參考下2012-11-11
Android 中 android.view.WindowLeaked的解決辦法
這篇文章主要介紹了Android 中 android.view.WindowLeaked的解決辦法的相關(guān)資料,需要的朋友可以參考下2017-05-05
Android 自定義加載動畫Dialog彈窗效果的示例代碼
這篇文章主要介紹了Android 自定義加載動畫Dialog彈窗效果,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-06-06
Android繼承ViewGroup實(shí)現(xiàn)Scroll滑動效果的方法示例
這篇文章主要介紹了Android繼承ViewGroup實(shí)現(xiàn)Scroll滑動效果的方法,結(jié)合實(shí)例形式分析了Android滑動效果的原理及擴(kuò)展ViewGroup實(shí)現(xiàn)滑動功能的相關(guān)操作技巧,需要的朋友可以參考下2017-08-08

