Android开发 第四课 AutoCompleteTextView和MultiAutoCompleteTextView

1.AutoCompleteTextView

1.功能
动态匹配输入的内容,如百度搜索引擎当前输入文本时可以根据内容显示匹配的热门信息。
2.属性
android:completionThreshold=”2”【当输入2个字符时开始自动匹配】
设置多少字符时自动匹配

<?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.adb.li806.demon2.MainActivity"

    android:orientation="vertical"
    android:background="@drawable/doraemon1">

<!--
android:layout_width="match_parent" 宽度铺满父类
旧版本的写法:
<AutoCompleteTextView
        android:id="@+id/autoCompleteTextView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="请输入你要搜索的关键词
>
</AutoCompleteTextView>
-->
    <AutoCompleteTextView
        android:completionThreshold="3"
        android:id="@+id/autoCompleteTextView1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="请输入你要搜索的关键词"
        />


</LinearLayout>
package com.adb.li806.demon2;

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 acTextView;//实例
    private  String[] res = {"beijing1","beijing2","beijing3",
                                "shanghai1",  "shanghai2",  "shanghai3",
                                "doraemon多啦A梦1号","doraemon多啦A梦2号","doraemon多啦A梦3号"};
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        /**
         * onCreate是Android中的一个特别的函数,用来“表示一个窗口正在生成”。其不产生窗口,
         * 只是在窗口显示前设置窗口的属性如风格、位置颜色等。
         *Activity onCreate()是在Activity创建时被系统调用,是一个Activity生命周期的开始;
         * 它主要做这个activity启动时一些必要的初始化工作,这个函数调用完后,
         * 这个activity并不是说就已经启动了,或者是跳到前台了。
         * onStart()调用完毕了这个activity还没有完全启动,也只是前台可见,
         * 直到 onResume() 调用后这个onCreate才算终于启动。
         *
         * 进行AutoCompleteTextView控件的设置
         * 1.第一步  初始化控件(首先先找到控件)
         * 2.第二步  需要一个适配器(适配器的作用,通过适配器适配当前文本框输入的内容)
         * 3.第三步  初始化数据源  (这个数据源去匹配文本框输入的内容)
         * 4.第四步  将adpter与当前AutoCompleteTextView控件绑定
         * */
        acTextView = (AutoCompleteTextView)findViewById(R.id.autoCompleteTextView1);

        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
                android.R.layout.simple_expandable_list_item_1,res);
        // android.R.layout.simple_expandable_list_item_1  系统提供的一个布局
        //res  Adapter的数据源
        acTextView.setAdapter(adapter);

    }
}

这里写图片描述

2.MultiAutoCompleteTextView

1.功能
支持选择多个值(在多次输入的情况下),分别用分隔符分开,并且在每个值选中的时候在再次输入值时会自动去匹配,可用在发短息,发邮箱时选择联系人这种类型当中。
2.属性
android:completionThreshold=”2”【当输入2个字符时开始自动匹配】
设置多少字符时自动匹配
3.设置分隔符
mtxt.setTokenizer(new MultiAutoCompleteTextView.commaTokenizer());
设置一个符号,该符号代表字段的结束。

package com.adb.li806.demon2;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.MultiAutoCompleteTextView;

public class MainActivity extends AppCompatActivity {

    private AutoCompleteTextView acTextView;//实例
    private  String[] res = {"beijing1","beijing2","beijing3",
                                "shanghai1",  "shanghai2",  "shanghai3",
                                "doraemon多啦A梦1号","doraemon多啦A梦2号","doraemon多啦A梦3号"};


    private MultiAutoCompleteTextView macTextView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        /**
         * onCreate是Android中的一个特别的函数,用来“表示一个窗口正在生成”。其不产生窗口,
         * 只是在窗口显示前设置窗口的属性如风格、位置颜色等。
         *Activity onCreate()是在Activity创建时被系统调用,是一个Activity生命周期的开始;
         * 它主要做这个activity启动时一些必要的初始化工作,这个函数调用完后,
         * 这个activity并不是说就已经启动了,或者是跳到前台了。
         * onStart()调用完毕了这个activity还没有完全启动,也只是前台可见,
         * 直到 onResume() 调用后这个onCreate才算终于启动。
         *
         * 进行AutoCompleteTextView控件的设置
         * 1.第一步  初始化控件(首先先找到控件)
         * 2.第二步  需要一个适配器(适配器的作用,通过适配器适配当前文本框输入的内容)
         * 3.第三步  初始化数据源  (这个数据源去匹配文本框输入的内容)
         * 4.第四步  将adpter与当前AutoCompleteTextView控件绑定
         * */
        acTextView = (AutoCompleteTextView)findViewById(R.id.autoCompleteTextView1);

        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
                android.R.layout.simple_expandable_list_item_1,res);
        // android.R.layout.simple_expandable_list_item_1  系统提供的一个布局
        //res  Adapter的数据源
        acTextView.setAdapter(adapter);


        /*
         * 进行MultiAutoCompleteTextView控件的设置
         * 1.第一步  初始化控件(首先先找到控件)
         * 2.第二步  需要一个适配器(适配器的作用,通过适配器适配当前文本框输入的内容)
         * 3.第三步  初始化数据源  (这个数据源去匹配文本框输入的内容)
         * 4.第四步  将adpter与当前AutoCompleteTextView控件绑定
         * 5.第五步  设置分隔符
         * */
        macTextView = (MultiAutoCompleteTextView) findViewById(R.id.multiAutoCompleteTextView);
        macTextView.setAdapter(adapter);
        //设置以逗号为分隔符为结束的符号
        macTextView.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());

    }
}
<?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.adb.li806.demon2.MainActivity"

    android:orientation="vertical"
    android:background="@drawable/doraemon1">

<!--
android:layout_width="match_parent" 宽度铺满父类
旧版本的写法:
<AutoCompleteTextView
        android:id="@+id/autoCompleteTextView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="请输入你要搜索的关键词
>
</AutoCompleteTextView>

android:textColor="#ff000000"  输入文字颜色设置  黑色
-->
    <AutoCompleteTextView
        android:completionThreshold="3"
        android:id="@+id/autoCompleteTextView1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="请输入你要搜索的关键词"
        android:textColor="#ff000000"
        />
<!--

旧版本:
    <MultiAutoCompleteTextView
        android:id="@+id/multiAutoCompleteTextView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="MultiAutoCompleteTextView" >

     </MultiAutoCompleteTextView
-->
    <MultiAutoCompleteTextView
        android:id="@+id/multiAutoCompleteTextView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="请输入你的收件人"
        android:textColor="#ff000000"/>


</LinearLayout>

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值