传送门 ☞ 轮子的专栏 ☞ 转载请注明 ☞ http://blog.csdn.net/leverage_1229
黑剑
黄蓉见那汉子左手使柄金光闪闪的大刀,右手使柄又细又长的黑剑,招数奇幻,生平未见,自己若不出手,武氏兄弟便要遭逢奇险,向李莫愁道:“那两个少年是我徒儿。”李莫愁涩然一笑,心想:“他们母亲是我杀的,我岂不知?”见那中年汉子武功高得出奇,江湖上却从未听说有这号人物,心下暗自惊异,微微一笑,道:“下场罢!”拔出拂尘一拂,黄蓉也已持竹棒在手。两人左右齐上,李莫愁拂尘攻那人黑剑,黄蓉的竹棒便缠向他金刀。今天我们学习如何利用Android平台“黑剑”AutoCompleteTextView、MultiAutoCompleteTextView来实现自动完成对单个和多个关键字的内容查询(类似百度搜索关键字自动查找内容),下面给出该情景的案例:
1案例技术要点
(1)android.widget.AutoCompleteTextView:对单个关键字搜索实现内容自动提示功能。
(2)android.widget.MultiAutoCompleteTextView:对一组关键字搜索实现内容自动提示功能。关键字之间用英文字符“,”分隔。
2案例代码陈列
AndroidManifest.xml
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.android.autocompletetextview"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="15" />
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity
android:name=".AutoCompleteTextViewMainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
strings.xml
<resources>
<string name="app_name">AutoCompleteTextView、MultiAutoCompleteTextView自动完成对单个和多个关键字的内容查询</string>
<string name="tv1">AutoCompleteTextView</string>
<string name="tv2">MultiAutoCompleteTextView</string>
</resources>
main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/tv1" />
<AutoCompleteTextView android:id="@+id/auto"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/tv2" />
<MultiAutoCompleteTextView android:id="@+id/multiauto"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
AutoCompleteTextViewMainActivity.java
package com.android.autocompletetextview;
import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.MultiAutoCompleteTextView;
/**
* 实现用户输入的内容有自动提示的功能(类似百度搜索结果)
* AutoCompleteTextView案例:实现关键字的模糊查询
* @author lynnli1229
*/
public class AutoCompleteTextViewMainActivity extends Activity {
//支持单个关键字自动查询,继续输入其他关键字会覆盖现有的
private AutoCompleteTextView auto;
//支持多个关键字自动查询,用英文“,”隔开
private MultiAutoCompleteTextView multiAuto;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
auto = (AutoCompleteTextView) findViewById(R.id.auto);
String[] autoStrings = new String[]{"中国人", "中国人真爷们", "中国人好棒哦", "Google", "Goodbye"};
//ArrayAdapter构造器第二个参数定制适配器的下拉风格
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_dropdown_item_1line, autoStrings);
auto.setAdapter(adapter);
multiAuto = (MultiAutoCompleteTextView) findViewById(R.id.multiauto);
multiAuto.setAdapter(adapter);
multiAuto.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());
}
}