Android学习起步 - AutoCompleteTextView及MultiAutoCompleteTextView控件使用

大家在用百度搜索时,输入几个词就出现下拉框可选,以下两个控件就具有这个功能

AutoCompleteTextView:只能匹配输入的开始,只有一次匹配

MultiAutoCompleteTextView:可以匹配多次输入,用分隔符来分隔每一次的输入,就像发邮件时选多个联系人一样,见例子:

一、AutoCompleteTextView的效果实现如下

布局文件如下

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3     android:layout_width="match_parent"
 4     android:layout_height="match_parent"
 5     android:orientation="vertical" >
 6
 7
 8     <!-- 属性ems表示从第几个字开始显示下拉匹配框 -->
 9     <AutoCompleteTextView
10         android:id="@+id/autoCompleteTextView1"
11         android:layout_width="match_parent"
12         android:layout_height="wrap_content"
13         android:ems="2"
14         android:hint="请输入关键字搜索" >
15
16         <requestFocus />
17     </AutoCompleteTextView>
18
19 </LinearLayout>

代码文件如下

 1 package com.example.demo4;
 2
 3 import android.app.Activity;
 4 import android.os.Bundle;
 5 import android.widget.ArrayAdapter;
 6 import android.widget.AutoCompleteTextView;
 7
 8 public class MyactivityMainActivity extends Activity {
 9
10     private AutoCompleteTextView acTextview;
11
12     @Override
13     protected void onCreate(Bundle savedInstanceState) {
14         super.onCreate(savedInstanceState);
15         setContentView(R.layout.activity_main);
16
17         //获取到控件实例
18         acTextview = (AutoCompleteTextView) findViewById(R.id.autoCompleteTextView1);
19
20         //定义一个字符串数组用来匹配输入的关键字
21         String[] dsr = new String[] {
22                 "zhangshang", "zhangshi", "zhangzhang",
23                 "lishang", "ligang",
24                 "chengcheng", "chengzhi",
25                 "wangwu"
26                 };
27
28         //初始化一个用来匹配输入的下拉数据源适配器
29         ArrayAdapter<String> adptr = new ArrayAdapter<String>(
30                 this, //当前对象
31                 android.R.layout.simple_list_item_1,  //这是一个系统自带的layout
32                 dsr  //数据源
33                 );
34
35         //设置AutoCompleteTextView控件的匹配器
36         acTextview.setAdapter(adptr);
37
38     }
39
40
41 }

二、MultiAutoCompleteTextView实现效果如下

布局文件不用上了,就是变了一个控件而已,直接看代码,也就多了一条语句而已

 1 package com.example.demo4;
 2
 3 import android.app.Activity;
 4 import android.os.Bundle;
 5 import android.widget.ArrayAdapter;
 6 import android.widget.MultiAutoCompleteTextView;
 7
 8 public class MyactivityMainActivity extends Activity {
 9
10     private MultiAutoCompleteTextView macTextview;
11
12     @Override
13     protected void onCreate(Bundle savedInstanceState) {
14         super.onCreate(savedInstanceState);
15         setContentView(R.layout.activity_main);
16
17         //获取到控件实例
18         macTextview = (MultiAutoCompleteTextView) findViewById(R.id.multiAutoCompleteTextView1);
19
20         //定义一个字符串数组用来匹配输入的关键字
21         String[] dsr = new String[] {
22                 "zhangshang", "zhangshi", "zhangzhang",
23                 "lishang", "ligang",
24                 "chengcheng", "chengzhi",
25                 "wangwu"
26                 };
27
28         //初始化一个用来匹配输入的下拉数据源适配器
29         ArrayAdapter<String> adptr = new ArrayAdapter<String>(
30                 this, //当前对象
31                 android.R.layout.simple_list_item_1,  //这是一个系统自带的layout
32                 dsr  //数据源
33                 );
34
35         //设置AutoCompleteTextView控件的匹配器
36         macTextview.setAdapter(adptr);
37
38         //设备多次输入的分隔,这里为逗号
39         macTextview.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());
40
41     }
42
43
44 }

完了,是不是so easy,MultiAutoCompleteTextView就比AutoCompleteTextView多加了一条分隔语句而已,特么就是儿子继承了多一个功能而已!!!

时间: 2024-11-03 21:38:19

Android学习起步 - AutoCompleteTextView及MultiAutoCompleteTextView控件使用的相关文章

Android学习之AutoCompleteTextView和MultiAutoCompleteTextView

转自:http://blog.csdn.net/qq_28468727/article/details/52258409 AutoCompleteTextView.MultiAutoCompleteTextView自动完成输入内容的控件 如果我们想实现用户输入的内容有自动提示功能,类似百度搜索结果,AutoCompleteTextView和MultiAutoCompleteTextView可以实现类似功能 MainActivity.JAVA: public class MainActivity

【读书笔记-《Android游戏编程之从零开始》】5.Android 游戏开发常用的系统控件(ProgressBar、Seekbar)

3.7 ProgressBar ProgressBar类官方文档地址:http://developer.android.com/reference/android/widget/ProgressBar.html 在Android应用开发中,ProgressBar(运行进度条)是比较常用到的组件,例如下载进度.安装程序进度.加载资源进度显示等.在Android中提供了两种样式来分别表示在不同状态下显示的进度条,下面来实现这两种样式.默认进度条是圆形,通过style属性来指定系统进度条的大小:sty

android 在布局中动态添加控件

第一步 Java代码 final LayoutInflater inflater = LayoutInflater.from(this); 第二步:获取需要被添加控件的布局 Java代码 final LinearLayout lin = (LinearLayout) findViewById(R.id.LinearLayout01); 第三步:获取需要添加的布局(控件) Java代码 LinearLayout layout = (LinearLayout) inflater.inflate( R

Android给TextView和EditText等控件设置透明背景、圆角边框

第一种方法:在drawable文件夹下新建一个文件设置背景样式 代码: 在drawable文件夹下面新建textviewborder.xml <?xml version="1.0" encoding="UTF-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <solid android:color="#80858

如果写一个android桌面滑动切换屏幕的控件(二)

在viewgroup执行: public void snapToScreen(int whichScreen) { whichScreen = Math.max(0, Math.min(whichScreen, getChildCount() - 1)); boolean changingScreens = whichScreen != mCurrentScreen; mNextScreen = whichScreen; int mScrollX = this.getScrollX(); fin

如果写一个android桌面滑动切换屏幕的控件(三)

下面我们把这个控件内嵌到Layout中做一些动画和展示,效果图: 这个子控件可以上下移动,可以左右滑动,如果上下滑动距离大于左右滑动距离,则必须上下滑动 这样来写onTouch事件: @Override public boolean onTouchEvent(MotionEvent ev) { if (mVelocityTracker == null) { mVelocityTracker = VelocityTracker.obtain(); } mVelocityTracker.addMov

解决Android中,禁止ScrollView内的控件改变之后自动滚动

问题: 最近在写一个程序界面,有一个scrollVIew,其中有一段内容是需要在线加载的. 当内容加载完成后,ScrollView中内容的长度会发生改变,这时ScrollView会自动下滚,如下图所示: 滚动的那一下体验特别不好,所以要防止这种情况.即不论Scrollview中内容如何,都要保持在最上. 解决办法: 先简单写一下我的xml文件的结构: [html] view plaincopy <ScrollView android:id="@+id/scrollView1" a

【读书笔记-《Android游戏编程之从零开始》】3.Android 游戏开发常用的系统控件(Button、Layout、ImageButton)

3.1 Button Button这控件不用多说,就是一个按钮,主要是点击后进行相应事件的响应. 给组件添加ID属性:定义格式为 android:id="@+id/name",这里的name是自定义的,不是索引变量."@+"表示新声明,"@"表示引用,例如:"@+id/tv" 表示新声明一个id,是id名为tv的组件:"@id/tv" 表示引用id名为tv的组件. 给按钮添加点击事件响应  想知道按钮是否被

Android support library支持包常用控件介绍(二)

谷歌官方推出Material Design 设计理念已经有段时间了,为支持更方便的实现 Material Design设计效果,官方给出了Android support design library 支持库,让开发者更容易的实现材料设计的效果.顺便推荐官方的一个图标库:Material Icons 控件名称 NavigationView FloatingActionButton TextInputLayout Snackbar TabLayout AppBarLayout Coordinator