天天看點

Android基礎篇之AutoCompleteTextView

 2011-04-25 11:00:04

    AutoCompleteTextView 是Android中輸入提示框 雖然現在的輸入法越來越強大,但還是讓使用者輸入越友善越好

下面來看看代碼

1.在main.xml中建立一個 AutoCompleteTextView 布局

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:orientation="horizontal"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:padding="5dp">

<TextView

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="Country: " />

<AutoCompleteTextView android:id="@+id/autocomplete_country"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:completionThreshold="1"

android:layout_marginLeft="5dp"/>

<!--

android預設的是至少輸入2個字元才顯示提示 ,

android:completionThreshold 用來可以修改預設值

-->

</LinearLayout>

2.為 AutoCompleteTextView 中的資料提供布局res/item_list.xml

<?xml version="1.0" encoding="utf-8"?>

<TextView xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:padding="10dp"

android:textSize="16sp"

android:textColor="#000">

</TextView>

3.AutoCompleteText.java

package com.yin;

import android.app.Activity;

import android.os.Bundle;

import android.widget.ArrayAdapter;

import android.widget.AutoCompleteTextView;

public class AutoCompleteText extends Activity {

private static String[] COUNTRIES = {"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"};

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

AutoCompleteTextView actv = (AutoCompleteTextView) findViewById(R.id.autocomplete_country);

/**

* args[0] 不用解釋了

* args[1] 為AutoCompleteTextView 中的每個資料提供布局

* args[3] 提供資料來源

*/

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,R.layout.item_list ,COUNTRIES);

//啟用監聽器

actv.setAdapter(adapter);

}

}

在 ArrayAdapter中為AutoCompleteTextView提供資料源的另一種方法是在string.xml中添加string-array 如

<?xml version="1.0" encoding="utf-8"?>

<resources>

<string name="hello">Hello World, AutoCompleteText!</string>

<string name="app_name">AutoCompleteTextView</string>

<string-array name="country">

<item>Angola</item>

<item>Bahrain</item>

<item>Bangladesh</item>

<item>Botswana</item>

<item>Colombia</item>

</string-array>

</resources>

擷取資料

String[] countries = getResources.getStringArray(R.array.countr);

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,R.layout.item_list ,country );

Android基礎篇之AutoCompleteTextView