實現動態自動匹配輸入的內容

weixin_30639719發表於2020-04-05

AutoCompleteTextView

1.功能

  動態匹配輸入的內容,如百度搜尋引擎當輸入文字時可以根據內容顯示匹配的熱門資訊。

2.獨特屬性

  android:completionThreshold="2"

  ——設定輸入多少字元時自動匹配

package com.example.autocompletetextview;

import android.R.string;
import android.os.Bundle;
import android.app.Activity;
import android.content.res.AssetFileDescriptor.AutoCloseInputStream;
import android.view.Menu;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;

public class MainActivity extends Activity{

private AutoCompleteTextView acTextView;
//3
private String [] res ={"beijing1","beijing2","beijing3","beijing4","shanghai","guangzhou"};

@Override
protected void onCreate(Bundle savedInstanceState){

super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

// 第一步:初始化控制元件

// 第二步:需要一個介面卡

// 第三步:初始化資料來源——這資料來源去匹配文字框輸入的內容

// 第四步:將Adapter與當前的AutoCompleteTextview繫結

// 1
acTextView=(AutoCompleteTextView)findViewById(R.id.autoCompleteTextView1);
// 2
ArrayAdapter<String> adapter=new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, res);
// 4
acTextView.setAdapter(adapter);
}
}

 

 1 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 2     xmlns:tools="http://schemas.android.com/tools"
 3     android:layout_width="match_parent"
 4     android:layout_height="match_parent"
 5     android:paddingBottom="@dimen/activity_vertical_margin"
 6     android:paddingLeft="@dimen/activity_horizontal_margin"
 7    android:paddingRight="@dimen/activity_horizontal_margin"
 8     android:paddingTop="@dimen/activity_vertical_margin"
 9     tools:context=".MainActivity" >
10     <AutoCompleteTextView
11         android:completionThreshold="3"
12         android:id="@+id/autoCompleteTextView1"
13         android:layout_width="match_parent"
14         android:layout_height="wrap_content"
15         android:hint="請輸入文字"
16         android:layout_alignParentTop="true"
17         android:layout_centerHorizontal="true"
18    />
19 </RelativeLayout>

 

 

 

MultiAutoCompleteTextView

1.功能

  可支援選擇多個值(在多次輸入的情況下),分別用分隔符分開,並且在每個值選中的時候再次輸入值時自動去匹配,可用在發簡訊,發郵件時選擇聯絡人這種型別當中。

2.獨特屬性

  android:completionThreshold="2"

  ——設定輸入多少個字元時自動匹配

3.設定分隔符

  mtxt.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());

package com.example.autocompletetextview;

import android.R.string;
import android.os.Bundle;
import android.app.Activity;
import android.content.res.AssetFileDescriptor.AutoCloseInputStream;
import android.view.Menu;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.MultiAutoCompleteTextView;

public class MainActivity extends Activity
{
    /*
     * 可以通過這個控制元件實現類似百度搜尋的功能
     */
    private AutoCompleteTextView acTextView;
//3
    private String [] res ={"beijing1","beijing2","beijing3","beijing4","shanghai","guangzhou"};
    
    
    private MultiAutoCompleteTextView maTextView;
    
    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
//        第一步:初始化控制元件
//        第二步:需要一個介面卡
//        第三步:初始化資料來源——這資料來源去匹配文字框輸入的內容
//        第四步:將Adapter與當前的AutoCompleteTextview繫結
//        1
        acTextView=(AutoCompleteTextView)findViewById(R.id.autoCompleteTextView1);
//        2
        ArrayAdapter<String> adapter=new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, res);
//        4
        acTextView.setAdapter(adapter);
        
        
        
//        第一步:初始化控制元件
//        第二步:需要一個介面卡
//        第三步:初始化資料來源——這資料來源去匹配文字框輸入的內容
//        第四步:將Adapter與當前的AutoCompleteTextview繫結
//        第五步:設定分隔符
        maTextView=(MultiAutoCompleteTextView)findViewById(R.id.multiAutoCompleteTextView1);
        maTextView.setAdapter(adapter);
//        設定以逗號為分隔符為結束的符號
        maTextView.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());
    }

}

AutoCompleteTextView和MultiAutoCompleteTextView的區別在於前者輸入時只提供一次匹配,而後者,在輸入後支援多次匹配

 

AutoCompleteTextView用在搜尋上
MultiAutoCompleteTextView用在郵箱發件等

轉載於:https://www.cnblogs.com/crazyzx/articles/5239998.html

相關文章