Android中AutoCompleteTextView自动提示

我们使用控件AutoCompleteTextView 自动提示时,有时需要设置BaseAdapter,设置BaseAdapter时,需要实现Filterable,手动进行筛选。

常用属性

布局只设置了至少输入一个字符显示提示

<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) { //查询结果保存到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(); } } } }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

时间: 2024-11-13 06:39:07

Android中AutoCompleteTextView自动提示的相关文章

Android中AutoCompleteTextView自动提示_Android

我们使用控件AutoCompleteTextView 自动提示时,有时需要设置BaseAdapter,设置BaseAdapter时,需要实现Filterable,手动进行筛选. 常用属性 布局只设置了至少输入一个字符显示提示 <AutoCompleteTextView android:id="@+id/at" android:completionThreshold="1" android:layout_width="match_parent"

Android AutoCompleteTextView自动提示文本框实例代码_Android

 自动提示文本框(AutoCompleteTextView)可以加强用户体验,缩短用户的输入时间(百度的搜索框就是这个效果). 先给大家展示下效果图,如果大家感觉还不错,请参考实现代码:   最后一张获取文本框里面的值(其实就跟TextView.EditText一样): 首先,在xml中定义AutoCompleteTextView控件: activity_main.xml: <LinearLayout xmlns:android="http://schemas.android.com/ap

Android AutoCompleteTextView自动提示文本框实例代码

自动提示文本框(AutoCompleteTextView)可以加强用户体验,缩短用户的输入时间(百度的搜索框就是这个效果). 先给大家展示下效果图,如果大家感觉还不错,请参考实现代码: 最后一张获取文本框里面的值(其实就跟TextView.EditText一样): 首先,在xml中定义AutoCompleteTextView控件: activity_main.xml: <LinearLayout xmlns:android="http://schemas.android.com/apk/r

Android中AutoCompleteTextView与MultiAutoCompleteTextView的用法_Android

本文以实例列举了Android中AutoCompleteTextView与MultiAutoCompleteTextView的使用方法,具体使用方法如下: 首先看AutoCompleteTextView的使用: 支持基本的自动完成功能,适用在各种搜索功能中,并且可以根据自己的需求设置他的默认显示数据.两个控件都可以很灵活的预置匹配的那些数据,并且可以设置输入多少值时开始匹配等等功能.布局文件很简单,如下所示: <LinearLayout xmlns:android="http://sche

Android中AutoCompleteTextView与MultiAutoCompleteTextView的用法

本文以实例列举了Android中AutoCompleteTextView与MultiAutoCompleteTextView的使用方法,具体使用方法如下: 首先看AutoCompleteTextView的使用: 支持基本的自动完成功能,适用在各种搜索功能中,并且可以根据自己的需求设置他的默认显示数据. 两个控件都可以很灵活的预置匹配的那些数据,并且可以设置输入多少值时开始匹配等等功能. 布局文件很简单,如下所示: <LinearLayout xmlns:android="http://sc

myeclipse中的自动提示问题!每次变量名后面都追加字符!

问题描述 myeclipse中的自动提示问题!每次变量名后面都追加字符! 设置了MyEclipse中的自动提示后,每次我定义String类型的变量,变量后面都追加String, 比如我定义了一个String name,追加过后就是nameString,每次都要手动删掉,烦死人了,请问有什么方法解决这一个自动提示追加变量名的问题!! 解决方案 关闭提示吧,用的多了会产生惯性,自己就不知道怎么写代码了. 解决方案二: 我也遇到这个问题,很郁闷不懂咋解决!!希望有大神可以说一块,我用的环境是,myEc

Android用户输入自动提示控件AutoCompleteTextView使用方法

一.简介 1.AutoCompleteTextView的作用 2.AutoCompleteTextView的类结构图 也就是拥有EditText的各种功能 3.AutoCompleteTextView工作原理 AutoCompleteTextView的自动提示功能肯定需要适配器提供数据 4.Android里的适配器 5.适合AutoCompleteTextView的适配器 ArrayAdapter 二.AutoCompleteTextView实现自动提示的方法 1)AutoCompleteTex

android中AutoCompleteTextView的简单用法(实现搜索历史)_Android

网上有不少教程,那个提示框字符集都是事先写好的,例如用一个String[] 数组去包含了这些数据,但是,我们也可以吧用户输入的作为历史记录保存 下面先上我写的代码: import android.app.Activity; import android.content.SharedPreferences; import android.os.Bundle; import android.util.Log; import android.view.View; import android.view

android中AutoCompleteTextView的简单用法(实现搜索历史)

网上有不少教程,那个提示框字符集都是事先写好的,例如用一个String[] 数组去包含了这些数据,但是,我们也可以吧用户输入的作为历史记录保存 下面先上我写的代码: import android.app.Activity; import android.content.SharedPreferences; import android.os.Bundle; import android.util.Log; import android.view.View; import android.view