用户界面View之AutoCompleteTextView

来源:互联网 发布:自己播音软件 编辑:程序博客网 时间:2024/06/04 18:16

今天很残酷,明天更残酷,后天很美好,但绝对大部分都是死在明天晚上。坚持就是胜利!加油!

本讲内容:AutoCompleteTextView 自动完成文本框和MultiAutoCompleteTextView支持多次自动匹配


前面我们用Android系统内自定义的spinner的UI格式,本讲中我们使用自已定义的spinner的UI格式

示例一:


下面是res/layout/activity_main.xml 布局文件:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical"    tools:context="com.example.text.MainActivity$PlaceholderFragment" >    <TextView        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:text="省份:" />   <AutoCompleteTextView        android:id="@+id/autoCompleteTextViewId"       android:layout_width="match_parent"       android:layout_height="wrap_content"       android:completionThreshold="1"       android:hint="请输入省份"/>    </LinearLayout>
android:completionThreshold=”1″ 属性设置了一个阀值,规定用户打了多少字符之后才出现自动提示默认值是2,我们在这里改成了1。


下面是res/values/strings.xml文件:

<?xml version="1.0" encoding="utf-8"?><resources>    <string name="app_name">Text</string>    <string name="hello_world">Hello world!</string>    <string name="action_settings">Settings</string>    <string-array name="province">        <item>shan dong</item>        <item>jiang su</item>        <item>an hui</item>        <item>zhe jiang</item>        <item>fu jian</item>        <item>shang hai</item>        <item>guang dong</item>        <item>guang xi</item>        <item>hai nan</item>        <item>hu bei</item>        <item>hu nan</item>        <item>he nan</item>        <item>jiang xi</item>        <item>bei jing</item>        <item>tian jin</item>        <item>he bei</item>        <item>shan xi</item>        <item>nei meng gu</item>        <item>ning xia</item>        <item>xin jiang</item>        <item>qing hai</item>        <item>shan xi</item>        <item>gan su</item>        <item>si chuan</item>        <item>yun nan</item>        <item>gui zhou</item>        <item>xi zang</item>        <item>chong qing</item>        <item>liao ning</item>        <item>ji lin</item>        <item>hei long jiang</item>        <item>tai wan</item>        <item>xiang guang</item>        <item>ao men </item>        <item>山东</item>        <item>江苏</item>        <item>安徽</item>        <item>浙江</item>        <item>福建</item>        <item>上海</item>        <item>广东</item>        <item>广西</item>        <item>海南</item>        <item>湖北</item>        <item>湖南</item>        <item>河南</item>        <item>江西</item>        <item>北京</item>        <item>天津</item>        <item>河北</item>        <item>山西</item>        <item>内蒙古</item>        <item>宁夏</item>        <item>新疆</item>        <item>青海</item>        <item>陕西</item>        <item>甘肃</item>        <item>四川</item>        <item>云南</item>        <item>贵州</item>        <item>西藏</item>        <item>重庆</item>        <item>辽宁</item>        <item>吉林</item>        <item>黑龙江</item>        <item>台湾</item>        <item>香港</item>        <item>澳门</item>     </string-array></resources>

下面是自已定义的spinner的UI格式:

新建一个res/layout/list_item.xml文件,写入如下代码:

<?xml version="1.0" encoding="utf-8"?><TextView xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:padding="10dp"    android:textSize="16sp"    android:textColor="#000"></TextView>

下面是MainActivity主界面文件:

public class MainActivity extends Activity {private AutoCompleteTextView auto;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//定义数组String[] province=getResources().getStringArray(R.array.province);//找到自动完成组件        auto= (AutoCompleteTextView) findViewById(R.id.autoCompleteTextViewId);//定义数组适配器        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.list_item, province);        //为其设置适配器        auto.setAdapter(adapter);}}
注意:定义数组不能写在类前面,否则会报错,挺难发现的!


示例二:


下面是res/layout/activity_main.xml 布局文件:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical"    tools:context="com.example.text.MainActivity$PlaceholderFragment" >    <TextView        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:text="省份:" />    <MultiAutoCompleteTextView        android:id="@+id/multiAutoCompleteTextViewId"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:completionThreshold="1"        android:hint="请输入省份" /></LinearLayout>

下面是MainActivity主界面文件:

public class MainActivity extends Activity {private MultiAutoCompleteTextView auto;protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//定义数组  String[] province=getResources().getStringArray(R.array.province);auto=(MultiAutoCompleteTextView) findViewById(R.id.multiAutoCompleteTextViewId);//定义数组适配器  ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.list_item, province);  auto.setAdapter(adapter);//设置以逗号为分隔符为结束的auto.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());}}


Take your time and enjoy it 要原码的、路过的、学习过的请留个言,顶个呗~~



1 0