zoukankan      html  css  js  c++  java
  • Android用户界面 UI组件--自动提示输入框 AutoCompleteTextView和MultiAutoCompleteTextView

    AutoCompleteTextView: 就是一个带自动提示的EditText,当输入字符时,会出现提示.
    android:completionThreshold 
    输入几个字符时提示
    android:completionHint/setCompletionHint(CharSequence)
    设置出现下拉列表的提示标题
    android:dropDownHeight/setDropHeight(int)
    设置下拉列表的高度
    android:dropDownWidth/setDropWidth(int)
    设置下拉列表的宽度
    android:popupBackground/setDropDownbackgroundResource(int)
    设置下拉列表的背景
    在Android程序中,为了展示数据,通常会用到一个Adapter的接口
    setAdapter()设置提示内容的Adapter.

    MultiAutoCompleteTextView是多选选项
    使用MultiAutoCompleteTextView必须实现MultiAutoCompleteTextView.Tokenizer接口
    用于声明用于选项与选项之间分隔的符号,一般如不特殊指定,可以使用Android为我们提供的实现类MultiAutoCompleteTextView.CommaTokenizer,它设定使用英文逗号","进行分隔选项.

    例子:

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        tools:context=".MainActivity" >
        
        <LinearLayout android:layout_width="match_parent"
                      android:layout_height="wrap_content"
                      android:orientation="horizontal">
        
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="单选搜索"
            tools:ignore="HardcodedText" />
    
        <AutoCompleteTextView android:id="@+id/autoText"
                              android:layout_width="match_parent"
                              android:layout_height="wrap_content"
                              />
        
       </LinearLayout>
       <LinearLayout android:layout_width="match_parent"
                      android:layout_height="wrap_content">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="多选搜索"
            tools:ignore="HardcodedText" />
        
       <MultiAutoCompleteTextView android:id="@+id/autoMultiText"
                                  android:layout_width="match_parent"
                                  android:layout_height="wrap_content"
                                  />
      </LinearLayout>
       
    
    </LinearLayout>
    package com.light.android.study;
    
    import android.app.Activity;
    import android.os.Bundle;
    import android.view.Gravity;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.ArrayAdapter;
    import android.widget.AutoCompleteTextView;
    import android.widget.CheckBox;
    import android.widget.CompoundButton;
    import android.widget.MultiAutoCompleteTextView;
    import android.widget.MultiAutoCompleteTextView.CommaTokenizer;
    import android.widget.RadioGroup;
    import android.widget.RadioGroup.OnCheckedChangeListener;
    import android.widget.Toast;
    import android.widget.ToggleButton;
    
    public class MainActivity extends Activity {
    
    	private AutoCompleteTextView autoText;
    	private MultiAutoCompleteTextView autoMultiText;
    	private String[] keywords = {
    			"ab","abc","abdfdf","abnsd","abdfff"
    	};
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.activity_main);
    		init();
    		initAdapter();
    	}
    	
    	private void init(){
    		autoText = (AutoCompleteTextView) findViewById(R.id.autoText);
    		autoMultiText = (MultiAutoCompleteTextView) findViewById(R.id.autoMultiText);
    	}
    	
    	private void initAdapter(){
    		ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_dropdown_item_1line, keywords);
    		autoText.setAdapter(adapter);
    		autoMultiText.setAdapter(adapter);
    		autoMultiText.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());
    	}
    	
    
    }
    


    效果:




     

  • 相关阅读:
    JAVA多线程大总结篇
    JAVA多线程总结01
    Eclipse配置Tomcat
    jdbc注册驱动出现Loading class `com.mysql.jdbc.Driver'. This is deprecated的问题:
    windows10环境下eclipse连接mysql
    mysql忘记密码,如何修改
    c++笔记:虚函数必要但易忘的一些性质
    Mysql 4 —— select 进阶
    Mysql 3 —— 建表
    数据结构实验一:单链表就地翻转
  • 原文地址:https://www.cnblogs.com/krislight1105/p/3748364.html
Copyright © 2011-2022 走看看