AutoCompleteTextView的使用

 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的使用

 

 

雖然AutoCompleteTextView不是Android的常用控件,但是它的實用性還是很強的,具體的使用可以參考ApiDemos,對於基本的用法,它有很詳細的說明。但是這些例子遠遠無法滿足我們的需求,下面講一下幾個例子中沒有涉及到的屬性。

         completionThreshold:它的值決定了你在AutoCompleteTextView至少輸入幾個字符,它纔會具有自動提示的功能。另,默認最多提示20條。

        dropDownAnchor:它的值是一個View的ID,指定後,AutoCompleteTextView會在這個View下彈出自動提示。

        dropDownSelector:應該是設置自動提示的背景色之類的,沒有嘗試過,有待進一步考證。

        dropDownWidth:設置自動提示列表的寬度。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章