29.Android之文本框输入自动提示学习

我们在用百度、淘宝等之类搜索输入一些字符时,会自动弹出一个下拉框提示类似的结果。在Android中提供了两种智能输入框,它们是AutoCompleteTextView、MultiAutoCompleteTextView,今天来学习下。

AutoCompleteTextView、MultiAutoCompleteTextView二者区别是前者选择一个,后者可以选择多个。

直接上代码,首先改下xml文件:

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3     android:layout_width="fill_parent"
 4     android:layout_height="wrap_content"
 5     android:orientation="vertical"
 6     android:padding="5dp" >
 7
 8     <TextView
 9         android:layout_width="wrap_content"
10         android:layout_height="wrap_content"
11         android:text="Country_single" />
12
13     <AutoCompleteTextView
14         android:id="@+id/autocomplete_country"
15         android:layout_width="fill_parent"
16         android:layout_height="wrap_content"
17         android:layout_marginLeft="5dp"
18         android:completionHint="请选择:"
19         android:completionThreshold="1"
20         android:dropDownHorizontalOffset="10dp" />
21
22     <TextView
23         android:layout_width="wrap_content"
24         android:layout_height="wrap_content"
25         android:text="Country_multi" />
26
27     <MultiAutoCompleteTextView
28         android:id="@+id/multi"
29         android:layout_width="fill_parent"
30         android:layout_height="wrap_content"
31         android:layout_marginLeft="5dp" />
32
33 </LinearLayout>

修改MainActivity.java代码:

 1 package com.example.autocompletetextviewdemo;
 2
 3 import android.app.Activity;
 4 import android.os.Bundle;
 5 import android.widget.ArrayAdapter;
 6 import android.widget.AutoCompleteTextView;
 7 import android.widget.MultiAutoCompleteTextView;
 8
 9 public class MainActivity extends Activity {
10
11     public boolean actvflag = true;
12     public String[] countries = null;
13     private MultiAutoCompleteTextView multi=null;
14
15     @Override
16     protected void onCreate(Bundle savedInstanceState) {
17         super.onCreate(savedInstanceState);
18         setContentView(R.layout.activity_main);
19
20         AutoCompleteTextView autoCompleteTextView = (AutoCompleteTextView) findViewById(R.id.autocomplete_country);
21         multi = (MultiAutoCompleteTextView) findViewById(R.id.multi);
22
23         if (actvflag) {
24              countries = new String[] { "Apple", "Android", "asian",
25                     "American", "Andorra" };
26         } else {
27              countries = getResources().getStringArray(
28                     R.array.countries_array);
29         }
30         // 配置Adaptor
31         ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
32                 android.R.layout.simple_dropdown_item_1line, countries);
33
34         autoCompleteTextView.setAdapter(adapter);
35
36         //初始化multi
37         multi.setAdapter(adapter);
38         //设置输入多少字符后提示,默认值为2,在此设为1
39         multi.setThreshold(1);
40         //用户必须提供一个MultiAutoCompleteTextView.Tokenizer用来区分不同的子串。
41         multi.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());
42     }
43
44 }

再改下value/string.xml文件:

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <resources>
 3
 4     <string name="app_name">AutoCompleteTextViewDemo</string>
 5     <string name="hello_world">Hello world!</string>
 6     <string name="action_settings">Settings</string>
 7
 8     <string-array name="countries_array">
 9         <item>Babylon</item>
10         <item>background</item>
11         <item>Barbados</item>
12         <item>Bag</item>
13         <item>bacteria</item>
14         <item>Belize</item>
15         <item>baggage</item>
16     </string-array>
17
18 </resources>

运行效果:

点击"AutoCompleteTextView":

   

点击"MultiAutoCompleteTextView“框:

时间: 2024-10-07 20:01:19

29.Android之文本框输入自动提示学习的相关文章

简单的文本框输入自动提示

简单的文本框输入自动提示--输入的时候可以直接异步加载数据库中匹配的项,然后显示出来. 这里没有使用到数据库,直接在PHP用数组模拟数据存储.  demo演示 原理主要是: 监听输入框的状态,当有改变的时候即刻通过ajax发送数据并取得返回值. 主要使用了jQuery封装很方便,但貌似我这个兼容性不咋地...主要提供个思路吧~ js部分: <script type="text/javascript" src="./js/jquery.min.js">&l

314 Ajax案例:邮箱地址验证,搜索框输入自动提示,省市区三级联动

Aja案例接口文档 测试地址:http://localhost:3000 请求参数类型:application/x-www-form-urlencoded 邮箱地址验证 简要描述 验证邮箱@itcast.cn地址是否唯一,已注册 [[email protected]符合规则,未注册itheima] 请求地址 /verifyEmailAdress 请求方式 GET 参数 参数名 必选 类型 说明 email 是 string 待验证邮箱地址 返回值 {message: '邮箱地址已经注册过了, 请

实现文本框输入内容提示代码实例

实现文本框输入内容提示代码实例:比较人性化的网站一般都是比较讲究细节的,比如文本框输入内容具有提示效果,在默认情况下,文本框有提示文本,当鼠标放入文本框输入文本的时候,提示文本会消失,下面就通过代码实例介绍一下如何实现此效果.代码如下: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="author" content="ht

去掉文本框的自动提示

最近写个模糊查询的自动提示的功能,可是VS自带的文本框能记住以前填写过的东西,很是烦人,最后找到解决办法 html控件 : 将input元素的autocomplete属性设置为off可以关闭自动提示 <input type="text" name="name" autocomplete="off"> 如果所有表单元素都不想使用自动提示功能,只需在表单form上设置autocomplete=off.<form autocomple

文本框输入关键字提示

<input type="text" class="guanjianzi" placeholder="请输入关键字" />

文本框输入提示/自动完成功能

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>文本框输入提示/自动完成功能</ti

Android实现搜索框内自动完成文本框

Android实现搜索框内自动完成文本框 xml文件代码如下: 1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout 3 xmlns:android="http://schemas.android.com/apk/res/android" 4 android:orientation="vertical" 5 android:layout_width=

jQuery实现TEXT文本框输入时的提示信息(谷歌百度淘宝搜索框提示实现)

在搜索框中,输入之前框内有输入的提示信息,文本框获得焦点后会自动消失的效果,效果图如下: 鼠标放在文本框时的效果: 创建工具类(已经存在就不用创建了)Util.js(DWR的JS) 在里面添加如下方法: Js代码 /** * Input框里的灰色提示,使用前先引入jquery * <br>使用方法:<input type="text" tipMsg="您的用户名"   /> * * @return */ function inputTipTe

文本框输入内容智能提示效果

实现效果如图 大体思路: 1.监听文本框事件.这里是用的keyup事件.大家可以尝试用onchange事件.不过感觉keyup事件的效果要好一点. 2.根据输入内容通过ajax异步的方式去访问后台数据. 3.遍历返回数据将数据添加到显示区域. 4.在添加数据的同时给每一条数据加上一些效果,点击其中一条将数据填到文本框,并且提示内容消失. 5.后台数据应该拼接成json格式.我这里的格式是这样的[{"name":"张三","sex","男