Android開發(30)--AutoCompleteTextView和MultiAutoCompleteTextView自動提示輸入內容

首先大家都見過類似這種效果,

 

AutoCompleteTextView是實現動態匹配輸入的內容

下面就通過一個實例來說明AutoCompleteTextView,同樣,AutoCompleteTextView也需要一個適配器提供數據,當輸入文字時,下面的提示就是一個列表,運行效果如圖

附源碼:

佈局文件:

<AutoCompleteTextView
        android:id="@+id/auto"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:layout_below="@+id/textView1"
        android:layout_marginTop="20dp"
        android:ems="10" >

        <requestFocus />
    </AutoCompleteTextView>


 

<MultiAutoCompleteTextView
        android:id="@+id/multiAuto"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignRight="@+id/auto"
        android:layout_below="@+id/textView2"
        android:layout_marginTop="19dp"
        android:ems="10" />

 

實現類:

package com.example.autocomplete;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.MultiAutoCompleteTextView;

public class MainActivity extends Activity {
	private AutoCompleteTextView auto;
	private MultiAutoCompleteTextView mulAuto;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		auto=(AutoCompleteTextView) findViewById(R.id.auto);
		mulAuto= (MultiAutoCompleteTextView) findViewById(R.id.multiAuto);
		String[] autoStrings = new String[] { "百度", "百度影音", "百度地圖","百度文庫",
				"java", "javaweb","javascript" };
		// 第二個參數表示適配器的下拉風格
		ArrayAdapter<String> adapter = new ArrayAdapter<String>(MainActivity.this,
				android.R.layout.simple_dropdown_item_1line, autoStrings);
		auto.setAdapter(adapter);
		mulAuto.setAdapter(adapter);
		// 完成對選項的拆分的功能,以逗號進行拆分
		mulAuto.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}

}

如果實現歷史記錄提示,參見點擊打開鏈接

發佈了186 篇原創文章 · 獲贊 38 · 訪問量 82萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章