zoukankan      html  css  js  c++  java
  • Android开发10.2:UI组件AutoCompleteTextView(自动完成文本框)

    概述

    AutoCompleteTextVeiw(自动完成文本框)从 EditText派生而出
             当用户输入一定字符后,自动完成自动完成文本框会显示一个下拉菜单,供用户选择某个菜单项之后,AutoCompleteTextView按用户选择自动填写该文本框
     

    XML属性

    AutoCompleteTextView除了可使用EditText提供的XMl属性和方法之外,还支持如下常用的XML属性和方法
    android:completionHint setCompletionHint(CharSequence) 设置下拉菜单中的提示标题
    android:completionHintView   设置下拉菜单中提示标题的视图
    android:completionThreshold setThreshold(int) 设置用户至少输入几个字符才会显示提示
    adnroid:dropDownAnchor setDropDownAnchor(int) 设置下拉菜单的定位“锚点”组件,如果没有指定该属性,将使用该TextView本身作为定位”锚点“组件
    adnroid:dropDownHeight setDropDownHeight(int) 设置下拉菜单的高度
    android:dropDownHorizontalOffest   设置下拉菜单与文本框之间的水平偏移,下拉菜单默认与文本框左对齐
    adnroid:dropDownVerticalOffest   设置下拉菜单与文本框之间的垂直偏移,下拉菜单默认紧跟文本框
    android:dropDownWidth setDropDownWidth(int) 设置下拉菜单的宽度
    android:popupBackground setDropDownBackgroundResource(int) 设置下拉菜单的背景
     AutoCompleteeTextView还派生了一个子类(MultiAutoCompleteTextView),该子类的功能与AutoCompleteTextView基本相似,只是MultiAutoCompleteTextView允许输入多个提示项,多个提示项以分隔符分隔。
     

    案例

    Android_AutoCompleteTextView/res/layout/activity_mian.xml
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        >
        <!-- 定义一个自动完成文本框 -->
        <AutoCompleteTextView android:id="@+id/auto"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:completionHint="请选择您喜欢的名人"
            android:dropDownHorizontalOffset="10dp"
            android:completionThreshold="1"
            />
        <!-- 定义一个MultiAutoCompleteTextView组件 -->
        <MultiAutoCompleteTextView 
            android:id="@+id/mauto"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:completionThreshold="1"
            />
        
    </LinearLayout>

    java代码

    package com.example.android_autocompletetextview;
    
    import android.os.Bundle;
    import android.app.Activity;
    import android.view.Menu;
    import android.widget.ArrayAdapter;
    import android.widget.AutoCompleteTextView;
    import android.widget.MultiAutoCompleteTextView;
    
    public class MainActivity extends Activity {
        
        AutoCompleteTextView person;
        MultiAutoCompleteTextView mauto;
        //定义字符串数组,作为提示的文本
        String[] personData = new String[]
                {
                    "Jobs",
                    "LiKaifu",
                    "maYun"
                };
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            //创建一个ArrayAdapter,封装数组
            ArrayAdapter<String> pp = new ArrayAdapter<String>(
                    this,android.R.layout.simple_dropdown_item_1line,personData);
            person = (AutoCompleteTextView) findViewById(R.id.auto);
            mauto = (MultiAutoCompleteTextView) findViewById(R.id.mauto);
            //设置Adapter
            person.setAdapter(pp);
            mauto.setAdapter(pp);
            //为MultiAutoCompleteTextView 设置分隔符
            mauto.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());
            
        }
    
        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            // Inflate the menu; this adds items to the action bar if it is present.
            getMenuInflater().inflate(R.menu.main, menu);
            return true;
        }
    
    }



  • 相关阅读:
    BZOJ1527 : [POI2005]Pun-point
    2016-2017 ACM-ICPC Southwestern European Regional Programming Contest (SWERC 2016)
    2016-2017 ACM-ICPC Northwestern European Regional Programming Contest (NWERC 2016)
    NAIPC-2016
    BZOJ2498 : Xavier is Learning to Count
    ACM ICPC Vietnam National Second Round
    XVI Open Cup named after E.V. Pankratiev. GP of Ukraine
    XVI Open Cup named after E.V. Pankratiev. GP of Peterhof
    HDU5509 : Pattern String
    BZOJ4583 : 购物
  • 原文地址:https://www.cnblogs.com/yihujiu/p/6163269.html
Copyright © 2011-2022 走看看