第50章、自动提示AutoCompleteTextView(从零开始学Android)

  我们在查航班信息时,或者在百度、Google搜索时,当你在搜索框里输入一些字符时,会自动弹出一个下拉框提示类似的结果。在Android中提供了两种智能输入框,它们是AutoCompleteTextView、MultiAutoCompleteTextView。

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

一、布局文件

  打开activity_main.xml文件。

  输入以下代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    
    <AutoCompleteTextView android:id="@+id/single"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>
    
    <MultiAutoCompleteTextView android:id="@+id/multi"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>

</LinearLayout>


 

二、程序文件

  打开“src/com.genwoxue.autocompletetextview/MainActivity.java”文件。

  然后输入以下代码:

package com.example.autocompletetextview;


import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.MultiAutoCompleteTextView;

public class MainActivity extends Activity {

		//初始化城市列表
	    private static final String[] city=new String[]
	        {"乌鲁木齐市", "北京市", "郑州市", "上海市","天津市", "深圳市", "广州市", "南京市","大连市","大同市"};
	    
	    //声明AutoCompleteTextView、MultiAutoCompleteTextView对象
	    private AutoCompleteTextView single=null;
	    private MultiAutoCompleteTextView multi=null;
	    
	    @Override
	    public void onCreate(Bundle savedInstanceState) {
	        super.onCreate(savedInstanceState);
	        setContentView(R.layout.activity_main);
	        
	        //获取AutoCompleteTextView、MultiAutoCompleteTextView对象
	        single=(AutoCompleteTextView)findViewById(R.id.single);
	        multi=(MultiAutoCompleteTextView)findViewById(R.id.multi);
	        
	        //创建适配器
	        ArrayAdapter<String> adapter=new ArrayAdapter<String>(
	                this, 
	                android.R.layout.simple_dropdown_item_1line,
	                city);
	        
	        //初始化single
	        single.setAdapter(adapter);
	        //设置输入多少字符后提示,默认值为2,在此设为1
	        single.setThreshold(1);
	        
	        //初始化multi
	        multi.setAdapter(adapter);
	        multi.setThreshold(1);
	        //用户必须提供一个MultiAutoCompleteTextView.Tokenizer用来区分不同的子串。
	        multi.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());
	    }
	}

 

  说明:

(1)AutoCompleteTextView常见方法

  clearListSelection():清除选中的列表项;
 
  dismissDropDown():如果存在关闭下拉菜单;
 
  getAdapter():获取适配器。

(2)MultiAutoCompleteTextView常见方法

  enoughToFilter():当文本长度超过阈值时过滤;

  performValidation():代替验证整个文本,这个子类方法验证每个单独的文字标记;
 
  setTokenizer(MultiAutoCompleteTextView.Tokenizer t):用户正在输入时,tokenizer设置将用于确定文本相关范围内。


 

三、运行结果

 

   

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蒋会全

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值