首先大家都见过类似这种效果,
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;
} }
如果实现历史记录提示,参见点击打开链接