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