轉:android中建立具備自動提示功能的菜

經過Google上網搜索時,只要輸入幾個文字,就會顯示相近的關鍵字讓你挑選,而這種效果其實在Android中是很是容易達到的。事實上,Android的AutoCompleteTextView Widget,只要搭配ArrayAdapter就能設計出相似Google搜索提示的效果。 java

本範例先在Layout當中佈局一個AutoCompleteTextView Widget,而後經過預先設置好的字符串數組,將此字符串數組放入ArrayAdapter,最後利用AutoCompleteTextView.setAdapter方法,就能夠讓AutoCompleteTextView Widget具備自動完成提示的功能。例如,只要輸入ab,就會自動帶出包含ab的全部字符串列表。 android

範例程序

src/irdc.ex04_13/EX04_13.java

本範例程序主要示範AutoCompleteTextView用法,再次使用到ArrayAdapter,只要是有下拉菜單的項目,都必須使用到ArrayAdapter對象。此外,將ArrayAdapter添加AutoComplete TextView對象中,所使用的方法爲setAdapter,當中傳輸惟一的參數類型即爲字符串類型的ArrayAdapter。 數組

/* import程序略 */ app

public class EX04_13 extends Activity ide

{ 佈局

private static final String[] autoStr = new String[] 學習

{ "a", "abc", "abcd", "abcde" }; this

/** Called when the activity is first created. */ spa

@Override 設計

public void onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

/*加載main.xml Layout */

setContentView(R.layout.main);

/* new ArrayAdapter對象並將autoStr字符串數組傳入 */

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,

android.R.layout.simple_dropdown_item_1line, autoStr);

/* 以findViewById()取得AutoCompleteTextView對象 */

AutoCompleteTextView myAutoCompleteTextView =

(AutoCompleteTextView) findViewById(R.id.myAutoCompleteTextView);

/* 將ArrayAdapter添加AutoCompleteTextView對象中 */

myAutoCompleteTextView.setAdapter(adapter);

}

}

擴展學習

有個相似AutoCompleteTextView的對象,稱爲MultiAutoCompleteTextView,它繼承了Auto CompleteTextView,差異在於它能夠在輸入框一直增長新的選擇值,其編寫方式也有些不一樣,必定要setTokenizer,不然會出現錯誤,如下範例是傳入CommaTokenizer類,結果會將本來選擇框裏的值日後加逗號及空白。

package irdc.ex04_13;

import android.app.Activity;

import android.os.Bundle;

import android.widget.ArrayAdapter;

import android.widget.AutoCompleteTextView;

import android.widget.MultiAutoCompleteTextView;

public class EX04_13 extends Activity

{

private static final String[] autoStr = new String[]

{ "a", "abc", "abcd", "abcde" };

/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

/*加載main.xml Layout */

setContentView(R.layout.main_1);

/* new ArrayAdapter對象並將autoStr字符串數組傳入 */

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,

android.R.layout.simple_dropdown_item_1line, autoStr);

/* 以findViewById()取得MultiAutoCompleteTextView對象 */

MultiAutoCompleteTextView myAutoCompleteTextView =

(MultiAutoCompleteTextView)

findViewById(R.id.myAutoCompleteTextView);

/* 將ArrayAdapter添加AutoCompleteTextView對象中 */

myAutoCompleteTextView.setAdapter(adapter);

myAutoCompleteTextView.setTokenizer

(new MultiAutoCompleteTextView.CommaTokenizer());

}

}

相關文章
相關標籤/搜索