备注:此备注将会存在本人的每一条博客,将会定期更改
1、使用的软件是Android studio 版本是3.4.2
一、很简单的实现,使用ArrayAdapter适配器,只能在自己添加的字符串里实现匹配数据
默认输入两个字母会实行匹配
一些属性:
setCompletionHint(CharSequence) 设置下拉菜单中的提示标题
android:completionHintView 设置下拉菜单中提示标题的视图
android:completionThreshold setThreshold(int) 设置用户至少输入几个字符才会显示提示
adnroid:dropDownAnchor setDropDownAnchor(int) 设置下拉菜单的定位“锚点”组件,如果没有指定该属性,将使用该TextView本身作为定位”锚点“组件
adnroid:dropDownHeight setDropDownHeight(int) 设置下拉菜单的高度
android:dropDownHorizontalOffest 设置下拉菜单与文本框之间的水平偏移,下拉菜单默认与文本框左对齐
adnroid:dropDownVerticalOffest 设置下拉菜单与文本框之间的垂直偏移,下拉菜单默认紧跟文本框
android:dropDownWidth setDropDownWidth(int) 设置下拉菜单的宽度
android:popupBackground setDropDownBackgroundResource(int) 设置下拉菜单的背景
首先还是最简单的添加控件
<?xml version="1.0" encoding="utf-8"?><AutoCompleteTextView
android:hint="在此框输入搜索信息"
android:id="@+id/auto_text1"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<Button
android:id="@+id/button_auto_btn1"
android:layout_width="wrap_content"
android:text="清除按钮"
android:layout_height="wrap_content" />
接着实现功能
public class AutoCompleteTextViewActivity extends AppCompatActivity {
private String[] normalString = new String[]{
"Android","Android Blog","Android Market","Android Sdk",
"Android AVD","BlackBerry","BlackBerry JDE","Symbian",
"Symbian Carbide","Java 2ME","Nokia","Sun",
"Nokia Symbian","Nokia forum","WindowsMobile","Broncho",
"Windows XP","Google","Google Android","Google 浏览器",
"IBM","MicroSoft","Java","C++","C","C#","J#","VB"
};
private AutoCompleteTextView autoTextView;
private Button clean;
private ArrayAdapter<String> arrayAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_auto_complete_text_view);
autoTextView = findViewById(R.id.auto_text1);
clean = findViewById(R.id.button_auto_btn1);
/* 实现一个适配器对象,用来给自动完成输入框添加自动装入的内容 */
arrayAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,normalString);
/* 给自动完成输入框添加内容适配器 */
autoTextView.setAdapter(arrayAdapter);
//清空按钮添加事件处理器
clean.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
autoTextView.setText("");
}
});
}
}
参考《Android从入门到精通》