[Android]自动完成文本框 AutoCompleteTextView

AutoCompleteTextView用途:在输入框输入的几个字后,自动出现一些文字信息供选择。
AutoCompleteTextView是EditView的子类,继承了它的所有属性和方法。

1.AutoCompleteTextView属性

  • android :completionHint: 设置显示下拉列表的提示题目
  • android :completionThreshold: 设置至少输入几个字符,它才会具有自动提示的功能
  • android :dropDownAnchor: 后接一个view的Id ,会在这个view下弹出自动提示
  • android :dropDownHeight: 设置下拉列表的高度
  • android :dropDownWidth: 设置下拉列表的宽度
  • android :popupBackground: 设置下拉列表的背景

AutoCompleteTextView能够对用户键入的文本进行有效地扩充提示,不需要用户输入整个内容。默认必须输入至少两个字符才能提示,可以通过 setThreshold(1) 来更改。

2.AutoCompleteTextView常用方法

  • public void clearListSelection():清除所有的下拉列表项
  • public ListAdapter getAdapter(): 取得数据集
  • public void setAdapter(T adapter): 设置数据集
  • public void setcompletionHint(CharSequence): 设置出现下拉列表的提示标题
  • public void setThreshold(int):至少输入几个字符才会显示提示
  • public void setDropHeight (int): 设置下拉列表的高度
  • public void setDropWidth (int) :设置下拉列表的宽度
  • public void setDropDownbackgroundResource (int) :设置下拉列表的背景
  • public void setOnClickListener (View.OnClickListener listener) :设置单击事件
  • public void setOnItemClickListener (AdapterView.OnItemClickListener listener) :在选项上设置单击事件
  • public void setOnItemSelectedListener (AdapterView.OnItemSelectedListener listener) :在选项选中时的单击事件

AutoCompleteTextView 组件可以很好地帮助用户进行文本信息的输入,它可以 和一个字符串数组或List对象绑定当用户输入两个及以上字符时 ,系统将在AutoCompleteTextView组件下方列出字符串数组中所有以输入字符开头的字符串。
AutoCompleteTextView组件使用的关键是需要使用 AutoCompleteTextView类的 setAdapter方法 指定一个Adapter对象,如 “this.Auto.setAdapter(Adapter);”,其中adapter是一个数据集,可以是字符串数组或List对象。

3.运行图

在这里插入图片描述

4.代码

(1)activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">
    <AutoCompleteTextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:completionHint="请选择下列内容:"
        android:textSize="30sp"
        android:id="@+id/autotextview"
        android:dropDownWidth="match_parent"
        android:dropDownHeight="wrap_content"
        android:popupTheme="@color/cardview_light_background"/>

</LinearLayout>

(2)MainActivity.java

package com.example.progressdialog;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {
    private AutoCompleteTextView autoCompleteTextView=null;
    private String []array=new String[]{"河南大学","河南师范大学","河南工业大学","河海大学"};

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        autoCompleteTextView=findViewById(R.id.autotextview);  //取得组件
        ArrayAdapter<String> adapter=new ArrayAdapter<>(MainActivity.this,
                android.R.layout.simple_dropdown_item_1line,array); //定义数据集
        autoCompleteTextView.setAdapter(adapter);   //设置数据集
        autoCompleteTextView.setThreshold(1);       //设置至少输入几个字符才会显示提示
        autoCompleteTextView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
                Toast.makeText(MainActivity.this,"你选择的是:"+array[i],Toast.LENGTH_SHORT).show();
            }
        });



    }
}
  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是一个简单的微信小程序文本自动识别框然后自动填写到对应地址文本框的示例代码: 1. 在小程序页面中,使用 `wx.createCameraContext()` 方法创建相机上下文对象。 ```javascript onLoad: function() { // 创建相机上下文对象 this.ctx = wx.createCameraContext(); }, ``` 2. 在页面中使用 `<camera>` 标签创建相机视图,并设置 `bindscan` 事件处理函数。 ```html <camera mode="scanCode" bindscan="onScan"></camera> ``` 3. 在 `onScan` 事件处理函数中,处理文本识别结果,并将结果填写到对应的地址文本框中。 ```javascript onScan: function(e) { var that = this; // 使用 OCR API 对扫描到的文本进行识别 wx.request({ url: 'https://example.com/api/ocr', // OCR API 接口地址 method: 'POST', data: { text: e.result // 扫描到的文本 }, success: function(res) { // 成功获取到 OCR 结果 console.log(res.data); // 将 OCR 结果填写到对应的地址文本框中 that.setData({ address: res.data.address }); }, fail: function(res) { // OCR 处理失败 console.log(res); } }); }, ``` 4. 在页面中设置对应的地址文本框,并通过 `bindinput` 事件处理函数监听文本框内容的变化。 ```html <input type="text" placeholder="请输入地址" value="{{address}}" bindinput="onAddressInput" /> ``` 5. 在 `onAddressInput` 事件处理函数中,保存地址文本框的内容到页面的 `address` 变量中。 ```javascript onAddressInput: function(e) { this.setData({ address: e.detail.value }); }, ``` 以上是一个简单的微信小程序文本自动识别框然后自动填写到对应地址文本框的示例代码,希望能够对您有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值