欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android 自动补全提示输入AutoCompleteTextView、 MultiAutoCompleteTextView

程序员文章站 2024-02-21 22:47:10
以在搜索框搜索时,自动补全为例: 其中还涉及到一个词,tokenizer:分词器,分解器。 上效果图: mainactivity.java: packa...

以在搜索框搜索时,自动补全为例:

其中还涉及到一个词,tokenizer:分词器,分解器。

上效果图:

Android 自动补全提示输入AutoCompleteTextView、 MultiAutoCompleteTextViewAndroid 自动补全提示输入AutoCompleteTextView、 MultiAutoCompleteTextView

mainactivity.java:

package com.joan.testautocomletetextview;
import android.r.array;
import android.os.bundle;
import android.app.activity;
import android.content.res.resources;
import android.view.menu;
import android.widget.arrayadapter;
import android.widget.autocompletetextview;
import android.widget.multiautocompletetextview;
import android.widget.multiautocompletetextview.tokenizer;
public class mainactivity extends activity {
 autocompletetextview actv;
 multiautocompletetextview mactv;
 @override
 protected void oncreate(bundle savedinstancestate) {
  super.oncreate(savedinstancestate);
  setcontentview(r.layout.activity_main);
  actv = (autocompletetextview) findviewbyid(r.id.actv);
  mactv = (multiautocompletetextview) findviewbyid(r.id.mactv);
  // 取到strings.xml中定义的数组
  string[] names = this.getresources().getstringarray(r.array.names);
  // 适配器
  // 第三个参数是数据源
  // 第二个参数是样式资源的id
  arrayadapter<string> adapter = new arrayadapter<string>(this,
  android.r.layout.simple_expandable_list_item_1, names);
  // =============只能选择单个的自动补全=====================
  actv.setadapter(adapter);
  // =============可选择多个的自动补全=====================
  // tokenizer分词器,分解器
  // multiautocompletetextview.commatokenizer();这个简易的分解器可用于对由逗号和若干空格分割的列表进行分解.
  tokenizer t = new multiautocompletetextview.commatokenizer();
  mactv.setadapter(adapter);
  mactv.settokenizer(t);
 }
}

strings.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources>
 <string name="app_name">testautocompletetextview</string>
 <string name="action_settings">settings</string>
 <string name="hello_world">hello world!</string>
 <!--定义一个数组 -->
 <string-array name="names">
  <item >zhangyu</item>
  <item >zhangxinzhe</item>
  <item >zhangxingxing</item>
  <item >liudehua</item>
  <item >liuyi</item>
 </string-array>
</resources>

activity_main.xml:

<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"
 >
 <textview 
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:text="只可选择单个"
  />
 <!--autocompletetextview 自动补全,只能选择一个值 
  android:completionthreshold="1" 输入第一个字后自动补全 -->
 <autocompletetextview
  android:id="@+id/actv"
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:hint="请输入搜索的名字"
  android:completionthreshold="1"
  />
 <textview 
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:text="可选择多个"
  />
 <!--multiautocompletetextview 可以选择多个值 -->
 <multiautocompletetextview 
  android:id="@+id/mactv"
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:hint="请输入搜索的名字"
  android:completionthreshold="1"
  />
</linearlayout>

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!