AutoCompleteTextView是实现动态匹配输入的内容。如google搜索引擎当输入文本时可以根据内容显示匹配的热门信息。
layout部分:
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Country" />
<AutoCompleteTextView
android:id="@+id/edit"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
代码部分:
static final String[] COUNTRIES = new String[]
{ //这里用一个字符串数组来当数据匹配源
"Afghanistan",
"Albania", "Algeria", "American Samoa",
"Andorra",
"Angola", "Anguilla", "Antarctica",
"Antigua and Barbuda", "Argentina",
"Armenia",
"Aruba", "Australia", "Austria",
"Azerbaijan",
"Bahrain", "Bangladesh",
"Barbados", "Belarus", "Belgium",
"Belize",
"Benin", "Bermuda", "Bhutan",
"Bolivia",
"Bosnia and Herzegovina",
"Botswana", "Bouvet Island", "Brazil", "British Indian Ocean
Territory",
"British Virgin Islands", "Brunei",
"Bulgaria", "Burkina Faso", "Burundi",
"Cote
d‘Ivoire", "Cambodia", "Cameroon", "Canada", "Cape
Verde",
"Cayman Islands", "Central African
Republic", "Chad", "Chile", "China",
"Christmas
Island", "Cocos (Keeling) Islands", "Colombia", "Comoros",
"Congo",
"Cook Islands", "Costa Rica",
"Croatia", "Cuba", "Cyprus", "Czech
Republic",
"Democratic Republic of the Congo",
"Denmark", "Djibouti", "Dominica", "Dominican
Republic",
"East Timor", "Ecuador", "Egypt",
"El Salvador", "Equatorial Guinea",
"Eritrea",
"Estonia", "Ethiopia", "Faeroe
Islands", "Falkland Islands", "Fiji",
"Finland",
"Former Yugoslav Republic of
Macedonia", "France", "French Guiana", "French
Polynesia",
"French Southern Territories",
"Gabon", "Georgia", "Germany", "Ghana",
"Gibraltar",
"Greece", "Greenland", "Grenada",
"Guadeloupe", "Guam", "Guatemala", "Guinea",
"Guinea-Bissau",
"Guyana", "Haiti", "Heard
Island and McDonald Islands", "Honduras", "Hong Kong",
"Hungary",
"Iceland", "India", "Indonesia",
"Iran", "Iraq", "Ireland", "Israel", "Italy",
"Jamaica",
"Japan", "Jordan", "Kazakhstan",
"Kenya", "Kiribati", "Kuwait", "Kyrgyzstan",
"Laos",
"Latvia", "Lebanon", "Lesotho",
"Liberia", "Libya", "Liechtenstein", "Lithuania",
"Luxembourg",
"Macau", "Madagascar", "Malawi",
"Malaysia", "Maldives", "Mali", "Malta", "Marshall
Islands",
"Martinique", "Mauritania",
"Mauritius", "Mayotte", "Mexico", "Micronesia",
"Moldova",
"Monaco", "Mongolia", "Montserrat",
"Morocco", "Mozambique", "Myanmar",
"Namibia",
"Nauru", "Nepal", "Netherlands",
"Netherlands Antilles", "New Caledonia", "New
Zealand",
"Nicaragua", "Niger", "Nigeria",
"Niue", "Norfolk Island", "North Korea", "Northern
Marianas",
"Norway", "Oman", "Pakistan",
"Palau", "Panama", "Papua New Guinea", "Paraguay",
"Peru",
"Philippines", "Pitcairn Islands",
"Poland", "Portugal", "Puerto Rico",
"Qatar",
"Reunion", "Romania", "Russia",
"Rwanda", "Sqo Tome and Principe", "Saint
Helena",
"Saint Kitts and Nevis", "Saint
Lucia", "Saint Pierre and Miquelon",
"Saint
Vincent and the Grenadines", "Samoa", "San Marino", "Saudi Arabia",
"Senegal",
"Seychelles", "Sierra Leone",
"Singapore", "Slovakia", "Slovenia", "Solomon
Islands",
"Somalia", "South Africa", "South
Georgia and the South Sandwich Islands", "South
Korea",
"Spain", "Sri Lanka", "Sudan",
"Suriname", "Svalbard and Jan Mayen", "Swaziland",
"Sweden",
"Switzerland", "Syria", "Taiwan",
"Tajikistan", "Tanzania", "Thailand", "The
Bahamas",
"The Gambia", "Togo", "Tokelau",
"Tonga", "Trinidad and Tobago", "Tunisia",
"Turkey",
"Turkmenistan", "Turks and Caicos
Islands", "Tuvalu", "Virgin Islands",
"Uganda",
"Ukraine", "United Arab Emirates",
"United Kingdom",
"United States", "United
States Minor Outlying Islands", "Uruguay",
"Uzbekistan",
"Vanuatu", "Vatican City",
"Venezuela", "Vietnam", "Wallis and Futuna", "Western
Sahara",
"Yemen", "Yugoslavia", "Zambia",
"Zimbabwe"
};
@Override
public
void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
AutoCompleteTextView
textView = (AutoCompleteTextView)
findViewById(R.id.edit);//定义AutoCompleteTextView控件
ArrayAdapter
adapter = new
ArrayAdapter(this, //定义匹配源的adapter
android.R.layout.simple_dropdown_item_1line,
COUNTRIES);
textView.setAdapter(adapter); //设置
匹配源的adapter 到 AutoCompleteTextView控件
}
好了,运行看结果 输入ch 会自动去adapter中找出匹配的项显示:
虽然AutoCompleteTextView不是Android的常用控件,但是它的实用性还是很强的,具体的使用可以参考ApiDemos,对于基本的用法,它有很详细的说明。但是这些例子远远无法满足我们的需求,下面讲一下几个例子中没有涉及到的属性。
completionThreshold:它的值决定了你在AutoCompleteTextView至少输入几个字符,它才会具有自动提示的功能。另,默认最多提示20条。
dropDownAnchor:它的值是一个View的ID,指定后,AutoCompleteTextView会在这个View下弹出自动提示。
dropDownSelector:应该是设置自动提示的背景色之类的,没有尝试过,有待进一步考证。
dropDownWidth:设置自动提示列表的宽度。
AutoCompleteTextView,布布扣,bubuko.com
原文:http://www.cnblogs.com/tfy1332/p/3656064.html