Android开发 第四课 AutoCompleteTextView和MultiAutoCompleteTextView

xiaoxiao2021-02-28  157

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>

转载请注明原文地址: https://www.6miu.com/read-17845.html

最新回复(0)