原理:EdtText结合监听器TextWatcher与下拉框spinner,一旦监控到EditText的文本发生变化,就自动弹出适配好的文字下拉内容。
- 属性以及设置方法:
XML中的属性 | 代码中 | 说明 |
completionHint | setcompletionHint | 设置下拉列表底部的提示文字 |
completionThreshold | setThreshol | 设置至少输入多少个字符才会显示提示 |
dropDownHorizontalOffset | setdropDownHorizontalOffset | 设置下拉列表与文本框之间的水平偏移 |
dropDownVerticalOffset | setdropDownVerticalOffset | 设置下拉列表与文本框之间的垂直距离 |
dropDownHeight | setdropDownHeight | 设置下拉列表的高度 |
dropDownWeight | setdropDownWeight | 设置下拉来列表宽度 |
无 | setAdapter | 设置适配器 |
1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 android:layout_width="match_parent" 3 android:layout_height="match_parent" 4 android:orientation="vertical" 5 android:padding="5dp" > 6 7 <AutoCompleteTextView 8 android:id="@+id/ac_text" 9 style="@style/text_normal" 10 android:padding="10dp" 11 android:hint="请输入搜索关键词" 12 android:completionHint="相关词语" 13 android:completionThreshold="1" 14 android:dropDownHeight="wrap_content" 15 android:dropDownHorizontalOffset="0dp" 16 android:dropDownVerticalOffset="0dp" 17 android:dropDownWidth="match_parent" 18 android:textColor="#000000" 19 android:textSize="17sp" /> 20 21 </LinearLayout>
1 package com.example.alimjan.hello_world; 2 3 import android.content.Context; 4 import android.content.Intent; 5 import android.os.Bundle; 6 import android.support.v7.app.AppCompatActivity; 7 import android.widget.ArrayAdapter; 8 import android.widget.AutoCompleteTextView; 9 10 /** 11 * Created by alimjan on 7/3/2017. 12 */ 13 14 public class class_3_4_4 extends AppCompatActivity { 15 16 private AutoCompleteTextView ac_text; 17 private String[] hintArray = {"第一", "第一次", "第一次写代码", "第一次领工资", "第二", "第二个"}; 18 19 @Override 20 protected void onCreate(Bundle savedInstanceState) { 21 super.onCreate(savedInstanceState); 22 setContentView(R.layout.code_3_4_4); 23 24 ac_text= (AutoCompleteTextView) findViewById(R.id.ac_text); 25 ArrayAdapter<String> adapter = new ArrayAdapter<String>( 26 this, R.layout.item_dropdown, hintArray); 27 ac_text.setAdapter(adapter); 28 } 29 30 public static void startHome(Context mContext) { 31 Intent intent = new Intent(mContext, class_3_4_4.class); 32 mContext.startActivity(intent); 33 } 34 35 }