当前位置 : 首页 » 编程语言 » 正文

Android自动编辑文本框(AutoCompleteTextView)使用方法详解

分类 : 编程语言 | 发布时间 : 2018-04-21 09:06:21 | 浏览 : 0

自动编辑文本框(AutoCompleteTextView)继承自EditText,能够接受用户的输入编辑,但是有这自己的特色功能:输入一定的字符以后会弹出下拉列表提示供用户选择,用户选择之后会自动填充文本框。这项功能正如浏览器的输入提示:

由于自动编辑文本框继承于EditText,它能够支持EditText的全部属性,但是在输入提示方面它有着自己的独特属性:

android:completionHint     为弹出下拉菜单指定提示标题

android:completionThreshold     指定输入多少个字符以后会出现提示

android:dropDownHeight     指定下拉菜单的高度

android:dropDownHorizontalOffset      指定下拉菜单和文本框的水平偏移

android:dropDownVerticalOffset       指定下拉带单和文本框的垂直偏移

android:dropDownWidth      指定下拉菜单宽度

android:popupBackground       为下拉菜单设置背景

输入提示框中会有我们输入信息的补充,因此我们需要给输入提示框配置信息,这是要通过适配器实现。下面我们创建一个带输入提示框的AutoCompleteTextView

实例操作:

1.在可视化界面拖入一个自动完成编辑框,并设置2个字符弹出提示和编辑框出布局正中间

  <AutoCompleteTextView
    android:id="@+id/autoCompleteTextView1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:completionThreshold="2"
    android:hint="请输入"
    android:ems="10" >

    <requestFocus />
  </AutoCompleteTextView>

2.创建适配器。适配器可以通过java数组或资源文件创建,这里我们采用资源文件创建适配器

资源文件:

<?xml version="1.0" encoding="UTF-8"?>
<resources >
  <string-array name="data">
    <item >nanjing-xuanwu</item>
    <item >nanjing-jiangning</item>
    <item >nanjing-qixia</item>
    <item >nanjing-jianye</item>
  </string-array>
</resources>

java代码:

 AutoCompleteTextView atc = (AutoCompleteTextView)findViewById(R.id.autoCompleteTextView1);//获取组件
 ArrayAdapter<CharSequence> aa = ArrayAdapter.createFromResource(this, R.array.data,R.layout.support_simple_spinner_dropdown_item);//创建

3.绑定适配器

 atc.setAdapter(aa);

运行结果

总结:对于AutoCompletionEditText使用,主要是完善它的提示功能。提示词使用适配器加入,对于适配器创建,主要有通过资源文件创建和java字符串创建两种。

相关阅读:

What is 'Context' on Android?

Location of sqlite database on the device

Set the layout weight of a TextView programmatically

Disabling of EditText in android

How to print all key and values from HashMap in Android?

How To Set Text In An EditText

With android studio no jvm found, JAVA_HOME has been set

ADB Android Device Unauthorized

How to insert a SQLite record with a datetime set to 'now' in Android application?

XXHDPI and XXXHDPI dimensions in dp for images and icons in android