[Android] Editbox做出Autocomplete的效果

Android也可以做出如同網頁的AutoComplete效果。

首先在Layout佈局將EditBox改為AutoCompleteTextView(如下面程式的第7行)。
<LinearLayout
        android:id="@+id/search_layout"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <AutoCompleteTextView
            android:id="@+id/searchText"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:layout_centerVertical="true"
            android:hint="@string/search_hint"/>

</LinearLayout>
下面的範例將欲顯示的關鍵字放入一個陣列變數,也可改成由資料庫或外部資料源來。
private static final String[] KEYWORD = new String[] {
            "手機充電線","座充","眼鏡盒","計算機","麥克風","電腦椅","電腦桌","磁鐵","水槍"
    };

然後在Activity onCreate方法中,加入以下程式。第2行將前面的KEYWORD變數傳入ArrayAdapter,第4行表示當使用者鍵入第一個字時即觸發AutoComplete。
ArrayAdapter keywordAdapter= new ArrayAdapter<String>(this,
                android.R.layout.simple_dropdown_item_1line,KEYWORD);
AutoCompleteTextView searchText =(AutoCompleteTextView)findViewById(R.id.searchText);
searchText.setThreshold(1);
searchText.setAdapter(keywordAdapter);

如果需要更複雜的效果,可以自己寫Custom Adapter去處理。

這裡有從資料庫抓取關鍵字的例子:




相關文章

如何將電腦畫面經由 Chromecast 投放到電視螢幕上

Chrome 的檔案續傳功能

Mac與Android裝置傳輸檔案的方法

使用 Vysor 在電腦上控制 Android 裝置