Android UI组件学习
自动完成文本框(AutoCompleteTextView)的功能和用法
AutoCompleteTextView还派生了一个子类:MultiAutoCompleteTextView,该子类功能与AutoCompleteTextView类似,只是MultiAutoCompleteTextView允许输入多个提示项,用分隔符分隔
使用AutoCompleteTextView和MultiAutoCompleteTextView自动完成文本框
- 程序清单\layout\main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<AutoCompleteTextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/auto"
android:completionHint="请选择您喜欢的图书"
android:dropDownHorizontalOffset="10dp"
android:completionThreshold="1"/>
<MultiAutoCompleteTextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/mauto"
android:completionThreshold="1"/>
</LinearLayout>
- MainActivity.java
import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.MultiAutoCompleteTextView;
import androidx.annotation.Nullable;
public class MainActivity extends Activity {
private AutoCompleteTextView autoCompleteTextView;
private MultiAutoCompleteTextView multiAutoCompleteTextView;
//定义字符串作为提示的文本
String[] books = new String[]{"疯狂Java讲义", "疯狂Ajax讲义", "疯狂XML讲义", "疯狂WorkFlow讲义"};
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//创建一个ArrayAdapter封装数组
ArrayAdapter<String> aa = new ArrayAdapter<String>(this, android.R.layout.simple_dropdown_item_1line, books);
autoCompleteTextView = findViewById(R.id.auto);
multiAutoCompleteTextView = findViewById(R.id.mauto);
autoCompleteTextView.setAdapter(aa);
multiAutoCompleteTextView.setAdapter(aa);
//为MultiAutoCompleteTextView设置分隔符
multiAutoCompleteTextView.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());
}
}
- 效果展示
在AutoCompleteTextView中输入文字
在MultiAutoCompleteTextView中输入文字
在MultiAutoCompleteTextView中继续输入