七、Spinner 下拉列表
spinner就相当于Html中的下拉列表框,在下面的例子里我们共同学习一下spinner的使用。在这一小节,让我们建一个小关于色彩的下拉列表,当某一个选项被选择时,弹出一个吐司消息。
1、建一个新的项目,打开res/values/strings.xml文件,写入如下代码:
  1. < ?xml version="1.0" encoding="utf-8"?>

  2. <resources>

  3.    <string name="app_name">MainHelloSpinner</string>

  4.    <string name="color">选择色彩:</string>

  5.    <string -array="" name="colors">

  6.        <item>黑色 | Black</item>

  7.        <item>蓝色 | Blue</item>

  8.        <item>棕色 | Brown</item>

  9.        <item>绿色 | Green</item>

  10.        <item>灰色 | Grey</item>

  11.        <item>粉色 | Pink</item>

  12.        <item>紫色 | Purple</item>

  13.        <item>红色 | Red</item>

  14.        <item>白色 | White</item>

  15.        <item>黄色 | Yellow</item>

  16.    </string>

  17. </resources>

复制代码
2、打开res/layout/main.xml 写入如下内容:
  1. < ?xml version="1.0" encoding="utf-8"?>

  2. <linearlayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:padding="10dip" android:layout_width="fill_parent" android:layout_height="wrap_content">

  3.    <textview android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_margintop="10dip" android:text="@string/color">

  4.    <spinner android:id="@+id/spinner" android:layout_width="fill_parent" android:layout_height="wrap_content" android:prompt="@string/color">

  5. </spinner></textview></linearlayout>

复制代码
3、打开MainHelloSpinner.java 写入下内容:
  1. package android.basic.lesson10;


  2. import android.app.Activity;

  3. import android.os.Bundle;

  4. import android.view.View;

  5. import android.widget.AdapterView;

  6. import android.widget.AdapterView.OnItemSelectedListener;

  7. import android.widget.ArrayAdapter;

  8. import android.widget.Spinner;

  9. import android.widget.Toast;


  10. public class MainHelloSpinner extends Activity {

  11.    /** Called when the activity is first created. */

  12.    @Override

  13.    public void onCreate(Bundle savedInstanceState) {

  14.        super.onCreate(savedInstanceState);

  15.        setContentView(R.layout.main);


  16.        //找到Xml中定义的下拉列表

  17.        Spinner spinner = (Spinner)findViewById(R.id.spinner);

  18.        //准备一个数组适配器

  19.        ArrayAdapter adapter = ArrayAdapter.createFromResource(

  20.                this, R.array.colors, android.R.layout.simple_spinner_item);

  21.        //设置下拉样式

  22.        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

  23.        //为下拉列表设置适配器

  24.        spinner.setAdapter(adapter);


  25.        //定义子元素选择监听器

  26.        OnItemSelectedListener oisl=  new OnItemSelectedListener() {


  27.                        @Override

  28.                        public void onItemSelected(AdapterView<?> parent, View view,

  29.                                        int position, long id) {

  30.                      Toast.makeText(MainHelloSpinner.this,"选择的色彩: " +

  31.                  parent.getItemAtPosition(position).toString(), Toast.LENGTH_LONG).show();


  32.                        }


  33.                        @Override

  34.                        public void onNothingSelected(AdapterView<?> parent) {

  35.                        }

  36.        };

  37.        //为下拉列表绑定事件监听器

  38.        spinner.setOnItemSelectedListener(oisl);

  39.    }

  40. }

复制代码
4、运行程序:1.png2.png3.png八、AutoCompleteTextView 自动完成文本框AutoCompleteTextView和EditText一样都可以输入文本。但它可以和适配器绑定,当用户输入两个及以上字符时,系统将根据适配器提供的内容,进行文本的自动匹配提示。这个Web开发中Ajax里的一个标志性的功能,现在被Android弄成了一个标准组件。下面我们通过一个例子来学习一下:1、建一个新的项目,打开res/values/strings.xml文件,写入如下代码:
  1. < ?xml version="1.0" encoding="utf-8"?>

  2. <resources>

  3.    <string name="app_name">HelloAutoCompleteTextView</string>

  4.        <string -array="" name="province">

  5.        <item>shan dong</item>

  6.        <item>jiang su</item>

  7.        <item>an hui</item>

  8.        <item>zhe jiang</item>

  9.        <item>fu jian</item>

  10.        <item>shang hai</item>

  11.        <item>guang dong</item>

  12.        <item>guang xi</item>

  13.        <item>hai nan</item>

  14.        <item>hu bei</item>

  15.        <item>hu nan</item>

  16.        <item>he nan</item>

  17.        <item>jiang xi</item>

  18.        <item>bei jing</item>

  19.        <item>tian jin</item>

  20.        <item>he bei</item>

  21.        <item>shan xi</item>

  22.        <item>nei meng gu</item>

  23.        <item>ning xia</item>

  24.        <item>xin jiang</item>

  25.        <item>qing hai</item>

  26.        <item>shan xi</item>

  27.        <item>gan su</item>

  28.        <item>si chuan</item>

  29.        <item>yun nan</item>

  30.        <item>gui zhou</item>

  31.        <item>xi zang</item>

  32.        <item>chong qing</item>

  33.        <item>liao ning</item>

  34.        <item>ji lin</item>

  35.        <item>hei long jiang</item>

  36.        <item>tai wan</item>

  37.        <item>xiang guang</item>

  38.        <item>ao men </item>

  39.        <item>山东</item>