今天新学了一个AutoCompleteTextView高级控件,当初写Java实现Ajax自动补全的时候就感觉很好玩,今天使用AutoCompleteTextView后感觉更简单了,所以特意整理一下分享出来
实现思路:
第一步:在xml中用一个AutoCompleteTextView标签、competionThreshold是从第几个字开始
第二步:编辑相对应的java,获取控件AutoCompleteTextView
第三步:在res-values-strings.xml中定义一个string-array,标签内写item
第四步:再回到java代码中,获取第三步定义的string-array
第五步:实例化一个适配器,设置参数,第二个参数需要在layout中实例化一个xml,为你自己的内容写一个TextView的控件,只需要一个,所以要改掉根标签,只存在一个TextView。
第六步:在java代码中给控件设置适配器
xml中:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.g160628_android07_widgetplus.MainActivity"> <!--定义一个AutoCompleteTextView 设置当文本框有一个字的时候进行补全(设置completionThreshold) --> <AutoCompleteTextView android:layout_width="match_parent" android:layout_height="wrap_content" android:completionThreshold="1" android:id="@+id/actv_main_auto" /> </LinearLayout> java中:
package com.example.g160628_android07_widgetplus; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.widget.ArrayAdapter; import android.widget.AutoCompleteTextView; public class MainActivity extends AppCompatActivity { private AutoCompleteTextView actv_main_auto; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //根据id获取你的AutoCompleteTextView actv_main_auto = (AutoCompleteTextView) findViewById(R.id.actv_main_auto); //获取value中的字符串数组 String data[]=getResources().getStringArray(R.array.data); //实例化一个适配器(适配器的参数为,上下文,文本格式,数组) ArrayAdapter adapter=new ArrayAdapter(this,R.layout.item_actv,data); //给控件设置适配器 actv_main_auto.setAdapter(adapter); } } layout中的xml文本格式
<?xml version="1.0" encoding="utf-8"?> <!-- 自己写的一个文本格式 --> <TextView xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/tv_item_actv_text" android:textSize="30sp" > </TextView>strings.xml
<resources> <string name="app_name">G160628_android07_widgetPlus</string> <!-- 定义一个string-array,并命一个名字 --> <string-array name="data"> <item>张三</item> <item>张三丰</item> <item>李四</item> <item>李四他爹</item> <item>王五</item> <item>王二小</item> <item>蛋蛋</item> <item>狗蛋</item> <item>妞妞</item> <item>二狗子</item> </string-array> </resources> 欢迎各位指点一二
