您好,登錄后才能下訂單哦!
怎么在Android應用中實現一個動態匹配輸入的內容功能?針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
一、AutoCompleteTextView
獨特屬性:android:completionThreshold=”2”—–設置輸入多少字符時自動匹配
首先,我們先在res文件夾(我用的是AndroidStudio)下的active_main.xml下面加入AutoCompleteTextView控件,并設置好大小寬高等其他一些基礎屬性
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.admin.demo.MainActivity"> <AutoCompleteTextView android:completionThreshold="2" android:id="@+id/autoCompleteTextView1" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="請輸入你要搜索的關鍵詞" /> </LinearLayout>
接著,我們到java目錄下的MainActivity.java加入相應的代碼:
package com.example.admin.demo; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.widget.ArrayAdapter; import android.widget.AutoCompleteTextView; public class MainActivity extends AppCompatActivity { private AutoCompleteTextView acTextView; //建立一個數組,保存我們想要提示的文本內容 private String[] res = {"ab1","ab2","ab3"}; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //初始化控件,返回類型view強制轉換成AutoCompleteTextView acTextView = (AutoCompleteTextView) findViewById(R.id.autoCompleteTextView1); //添加適配器,并初始化數據源,用來匹配文本框輸入的內容 ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,res); //將適配器與當前控件綁定 acTextView.setAdapter(adapter); } }
這樣代碼就完成了,因為我們在AutoCompleteTextView控件中設置了android:completionThreshold=”2”,即當我們輸入到第2個字符時開始進行匹配,讓我們將當前應用程序布置到模擬器里面看一下效果:
二、MultiAutoCompleteTextView
有時候我們在文本框中需要進行多次輸入,比如我們在發短信或者寫郵件的時候,往往需要多選聯系人:
在這種時候,我們就可以選擇MultiAutoCompleteTextView:
這個控件的使用方法跟AutoCompleteTextView大體上還是差不多的,只是多了設置分隔符這一步
activity_main.xml:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.admin.demo.MainActivity"> <MultiAutoCompleteTextView android:completionThreshold="2" android:id="@+id/multiAutoCompleteTextView" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="請輸入收件人" /> </LinearLayout>
MainActivity.java:
package com.example.admin.demo; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.widget.ArrayAdapter; import android.widget.MultiAutoCompleteTextView; public class MainActivity extends AppCompatActivity { private MultiAutoCompleteTextView macTextView; //建立一個數組,保存我們想要提示的文本內容 private String[] res = {"ab1","ab2","ab3","cd1","cd2","cd3"}; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //初始化控件,返回類型view強制轉換成AutoCompleteTextView macTextView = (MultiAutoCompleteTextView) findViewById(R.id.multiAutoCompleteTextView); //添加適配器,并初始化數據源,用來匹配文本框輸入的內容 ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,res); //將適配器與當前控件綁定 macTextView.setAdapter(adapter); //設置以逗號為分隔符為結束的符號 macTextView.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer()); } }
關于怎么在Android應用中實現一個動態匹配輸入的內容功能問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。