編輯:關於Android編程
以在搜索框搜索時,自動補全為例:
其中還涉及到一個詞,Tokenizer:分詞器,分解器。
上效果圖:


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>
以上就是本文的全部內容,希望本文的內容對大家的學習或者工作能帶來一定的幫助,同時也希望多多支持本站!
Android上拉查看詳情實現
京東淘寶有那麼一種效果就是,上拉可以查看寶貝的詳情,這裡我也實現了一個類似的效果,也可以移植到商業項目上:先看看簡單的效果圖實現原理其實是利用了ScrollView的滾動
Data Binding Library(數據綁定庫)
引子https://github.com/Afra55/DataBindingApplication我自己認為,先看Demo,然後帶著疑問 去閱讀,會有一種解惑的情懷。&
android網絡應用開發完全解析
Android網絡應用開發,主要有兩種方式,一種是socket(是對tcp/udp協議的封裝),另外一種就是使用Http協議,Android中主要
Android系統 應用圖標顯示未讀消息數(BadgeNumber) 桌面app圖標的角標顯示
Android系統 小米,三星,索尼手機發送桌面快鍵提醒數字圖標,在Android系統中,眾所周知不支持BadgeNumber,雖然第三方控件BadgeView可以實現應
非ROOT實現靜默安裝的一些思考與體會,AIDL獲取IPackageManager,反射ServiceManager,系統簽名
最近自家的系統要做一個升級服務,裡面有三個功能,第一個是系統升級,也就是