当前位置:Gxlcms > PHP教程 > AndroidUI控件系列:AutoCompleteTextView(自动提示)

AndroidUI控件系列:AutoCompleteTextView(自动提示)

时间:2021-07-01 10:21:17 帮助过:22人阅读

AutoCompleteTextView的功能类似于百度或者Google在搜索栏输入信息的时候,弹出的与输入信息接近的提示信息。当然这里要要用到一些适配器

在Android中提供了两智能输入框,它们是MultiAutoCompleteTextView、AutoCompleteTextView。它们的功能大致一样,它和AutoCompleteTextView的区别就是MultiAutoCompleteTextView可以在输入框中一直增加新的选取值。编写方式也有所不同,在进行setAdapter之后还需要调用setTokenizer() 。下面详细介绍一下。

一、AutoCompleteTextView

1.简介

一个可编辑的文本视图,当用户输入信息后弹出提示。提示列表显示在一个下拉菜单中,用户可以从中选择一项,以完成输入。提示列表是从一个数据适配器获取的数据。

2.重要方法

clearListSelection():清除选中的列表项

dismissDropDown():如果存在关闭下拉菜单

getAdapter():获取适配器
3.创建须知

(1)布局文件

  1. <AutoCompleteTextView
  2. android:id="@+id/edit"
  3. android:layout_width="match_parent"
  4. android:layout_height="wrap_content" />


(2)程序

实例化适配器

  1. ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_dropdown_item_1line, strs);

设置适配器

  1. edit.setAdapter(adapter);

二、MultiAutoCompleteTextView

1.简介

继承自AutoCompleteTextView,延长AutoCompleteTextView的长度,你必须要提供一个MultiAutoCompleteTextView.Tokenizer来区分不同的子串

2.重要方法

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

performValidation():代替验证整个文本,这个子类方法验证每个单独的文字标记

setTokenizer(MultiAutoCompleteTextView.Tokenizer t);用户正在输入时,tokenizer设置将用于确定文本相关范围内
3.使用须知

(1)布局文件

  1. <MultiAutoCompleteTextView
  2. android:id="@+id/edit1"
  3. android:layout_width="match_parent"
  4. android:layout_height="wrap_content" />

(2)程序

实例化适配器

  1. ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_dropdown_item_1line, strs);

确定范围

  1. edit1.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer())

下面是个例子

AutoCommitTest.java

  1. package org.hualang.auto;
  2. import android.app.Activity;
  3. import android.os.Bundle;
  4. import android.widget.ArrayAdapter;
  5. import android.widget.AutoCompleteTextView;
  6. import android.widget.MultiAutoCompleteTextView;
  7. public class AutoCommitTest extends Activity {
  8. /** Called when the activity is first created. */
  9. private static final String[] autoString=new String[]{"welcome","well",
  10. "weatch","weexeview","werap"};
  11. @Override
  12. public void onCreate(Bundle savedInstanceState) {
  13. super.onCreate(savedInstanceState);
  14. setContentView(R.layout.main);
  15. //关联关键字
  16. ArrayAdapter<String> adapter=new ArrayAdapter<String>(this,
  17. android.R.layout.simple_dropdown_item_1line,
  18. autoString);
  19. AutoCompleteTextView autocomplete=(AutoCompleteTextView)findViewById(R.id.auto);
  20. autocomplete.setAdapter(adapter);
  21. MultiAutoCompleteTextView multi=(MultiAutoCompleteTextView) findViewById(R.id.multi);
  22. //将adapter添加到AutoCompleteTextView中
  23. multi.setAdapter(adapter);
  24. multi.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());
  25. }
  26. }

main.xml

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:orientation="vertical"
  4. android:layout_width="fill_parent"
  5. android:layout_height="fill_parent"
  6. >
  7. <TextView
  8. android:layout_width="fill_parent"
  9. android:layout_height="wrap_content"
  10. android:text="自动提示功能演示"
  11. />
  12. <AutoCompleteTextView
  13. android:id="@+id/auto"
  14. android:layout_width="fill_parent"
  15. android:layout_height="wrap_content"
  16. />
  17. <MultiAutoCompleteTextView
  18. android:id="@+id/multi"
  19. android:layout_width="fill_parent"
  20. android:layout_height="wrap_content"
  21. />
  22. </LinearLayout>

运行结果如下:

381.gif

382.gif

383.gif


以上就是Android UI控件系列:AutoCompleteTextView(自动提示)的内容,更多相关内容请关注PHP中文网(www.gxlcms.com)!

人气教程排行