android學習之AutoCompleteTextView控制項的學習

來源:互聯網
上載者:User

使用AutoCompleteTextView控制項最關鍵的地方還是用ArrayAdapter適配器給他提供內容。

本例有兩個xml布局檔案:一個是main.xml檔案,裡面有TextView和AutoCompleteTextView控制項

main.xml:

<?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="fill_parent">
 <TextView
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:text="請輸入"
  />

 <AutoCompleteTextView
  android:layout_width="fill_parent"
  android:layout_height="wrap_content"
  android:id="@+id/actv"
  android:layout_marginLeft="5dp"
  />
</LinearLayout>

還有一個list_item.xml檔案,裡面是用來約束ArrayAdapter資料輸入的格式,裡面就一個TextView:

<?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:id="@+id/textView"
    >
</TextView>

 

java代碼:

import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.TextView;

public class AutoCompleteTextViewActivity extends Activity {
 private AutoCompleteTextView actv = null;
 private TextView textView = null;

 static final String[] str = 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);
  actv = (AutoCompleteTextView) findViewById(R.id.actv);
  textView = (TextView) findViewById(R.id.textView);

  /**
   * 調用ArrayAdapter的建構函式建立一個ArrayAdapter對象
   * 第一個參數指上下文
   * 第二個參數指定了下拉式功能表中每一個條目的樣式
   * 第三個參數指定了TextView控制項的id
   * 第四個參數要添加資料的集合,為整個列表提供資料
   */
  ArrayAdapter<String> aa = new ArrayAdapter<String>(this, R.layout.list_item, R.id.textView, str);
  actv.setAdapter(aa);
 }
}

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.