首先大家都见过类似这种效果,

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;
- }
-
- }
如果实现历史记录提示,参见点击打开链接
|