Android[初级教程]第六章 AutoCompleteTextView和MultiAutoCompleteTextView控件
这一章我们来介绍AutoCompleteTextView和MultiAutoCompleteTextView控件,这两个控件都是EditText的子件,有什么用呢?
就拿前几章的西游记里的妖怪抓唐僧师徙来说,妖怪说他们人太多了,我记不清他们的名字了,好像里面有一个是猪九戒的,不对,是猪八戒,两个妖怪争论不休,怎么办?没关系,这就用到我们的自动提示控件了,当输猪字的时候,看八戒名字出来了吧,这样就不需要争论了.简单吧.
但两者有什么区别呢?看名字啊,AutoCompleteTextView控件是每次选一个,一次选一个.MultiAutoCompleteTextView控件呢,就是一次选几个,当然也可以是一个,但一个就用不着这控件啦,呵呵,可以一次多选几个,省点事.好了,我们来看
main.xml
view plain
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView android:text="这次妖怪们想抓" android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>
<AutoCompleteTextView android:layout_height="wrap_content"
android:id="@+id/autoCompleteTextView" android:layout_width="match_parent"
android:hint="请输入您知道的西游记人物" android:completionHint="我知道的人物"
android:completionThreshold="1">
</AutoCompleteTextView>
<MultiAutoCompleteTextView android:id="@+id/multiAutoCompleteTextView"
android:layout_height="wrap_content" android:layout_width="match_parent"
android:hint="请输入您知道的西游记人物" android:completionHint="我知道的人物"
android:completionThreshold="1"></MultiAutoCompleteTextView>
<TextView android:layout_height="wrap_content"
android:layout_width="fill_parent" android:text="@string/hello"
android:id="@+id/text"></TextView>
</LinearLayout>
定义了两个控件,一个AutoCompleteTextView控件,一个MultiAutoCompleteTextView控件
Activity的java代码如下:
view plain
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.MultiAutoCompleteTextView;
import android.widget.TextView;
public class ButtonDemoActivity extends Activity
{
private TextView text = null;
private String[] item = { "唐僧", "孙悟空 ", "猪八戒", "沙和尚" };
private AutoCompleteTextView autoCompleteTextView;
private MultiAutoCompleteTextView multiAutoCompleteTextView;
private ArrayAdapter adapter;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// 通过ID查找到main.xml中的TextView控件
text = (TextView) findViewById(R.id.text);
// 通过ID查找到main.xml中的AutoCompleteTextView控件
autoCompleteTextView = (AutoCompleteTextView) findViewById(R.id.autoCompleteTextView);
// 设定一个Array适配器,将数组数据放入适配器中
adapter = new ArrayAdapter(this,
android.R.layout.易做图_dropdown_item_1line, item);
// 对AutoCompleteTextView进行适配
autoCompleteTextView.setAdapter(adapter);
//设置AutoCompleteTextView的易做图
autoCompleteTextView.setOnItemClickListener(new OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3)
{
String str = "这次妖精把" + autoCompleteTextView.getText().toString()
+ "抓住了!";
updateText(str);
}
});
// 通过ID查找到main.xml中的MultiAutoCompleteTextView控件
multiAutoCompleteTextView = (MultiAutoCompleteTextView) findViewById(R.id.multiAutoCompleteTextView);
// 对MultiAutoCompleteTextView进行适配
multiAutoCompleteTextView.setAdapter(adapter);
//设置分隔符,默认的是逗号(,)
multiAutoCompleteTextView.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());
//设置MultiAutoCompleteTextView的易做图
multiAutoCompleteTex
补充:移动开发 , Android ,