从零开始学android

从零开始学android<Spinner下拉列表框的使用.九.>
下拉列表框也是一种常见的图形组件,它可以为用户提供列表的选则方式,与复选框或单选钮相比还可以节省手机的屏幕空间,在Android中可以使用android.widget.Spinner类实现,此类定义如下:
java.lang.Object
   android.view.View
     android.view.ViewGroup
       android.widget.AdapterView<T extends android.widget.Adapter>
         android.widget.AbsSpinner
           android.widget.Spinner 
No.
方法
类型
描述
1
public CharSequence getPrompt ()
普通
取得提示文字
2
public void setPrompt (CharSequence prompt)
普通
设置组件的提示文字
3
public void setAdapter (SpinnerAdapter adapter)
普通
设置下拉列表项
4
public void setOnItemClickListener(
AdapterView.OnItemClickListener l)
普通
设置选项单击事件

…………………………………………………………毫无美感的分割线…………………………………………………………
配置Strings.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string name="app_name">Hewwlo World</string>
    <string name="action_settings">Settings</string>
    <string name="hello_world">Hello world!</string>
    <string-array name="city_name">
        <item >河南</item>
        <item >北京</item>
        <item >上海</item>
    </string-array>
        <string name="city_info">请选择您的城市</string>

</resources>



在Android中,可以直接在main.xml文件中定义“<Spinner>”节点,但是在定义此元素的时候却不能直接设置其显示的列表项,关于下拉列表框中的列表项有以下两种方式进行配置:
方式一:直接通过资源文件配置
方式二:通过android.widget.ArrayAdapter类读取资源文件或者是指定具体设置的数据; 
接下来先看
第一种。

这个时候定义的是一个“string-array”的根节点,表示里面配置的是一个数组的集合,而里面的每一个“<item>”节点表示的就是每一个列表项的内容,随后在layout/main.xml文件定义“<Spinner>”节点的时候直接使用“android:entries="@array/city_labels"”属性就可以读取信息了。
<?xml version="1.0" encoding="UTF-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/info_city"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="请选择您喜欢的城市:" />

    <Spinner
        android:id="@+id/mycity"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:entries="@array/city_name"//设置下拉列表
        android:prompt="@string/city_info" />//设置提示文字



</LinearLayout>

运行程序
从零开始学android<Spinner下拉列表框的使用.9.&gt

这种方式配置简单操作也不错,但是在开发的灵活性上有一定的局限性。
…………………………………………………………毫无美感的分割线…………………………………………………………
第二种方式
布局文件
<?xml version="1.0" encoding="UTF-8"?>


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >


    <TextView
        android:id="@+id/info_city"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="请选择您喜欢的城市:" />
    <Spinner
        android:id="@+id/mycity"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        />
</LinearLayout>
JAVA文件
package com.example.hewwloworld;

import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.Spinner;

public class MainActivity extends Activity {
private Spinner city=null;//初始化Spinner
private ArrayAdapter<CharSequence> adaptercity=null;//初始化ArrayAdapter
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		super.setContentView(R.layout.activity_main);
		this.city=(Spinner)super.findViewById(R.id.mycity);//取得组件
		this.city.setPrompt("请选择您的城市");//设置提示文字
		this.adaptercity=ArrayAdapter.createFromResource(this, R.array.city_name, android.R.layout.simple_spinner_item);//设置下拉选项及下拉列表格式
		this.adaptercity.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
//设置按下选项列表格式
this.city.setAdapter(adaptercity);//配置adapter}}

从零开始学android<Spinner下拉列表框的使用.9.&gt
效果和第一种方式是一样的。
从零开始学android<Spinner下拉列表框的使用.9.&gt
当然通过集合配置也是可以完成同样的功能。
package com.example.hewwloworld;

import java.util.ArrayList;
import java.util.List;

import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.Spinner;

public class MainActivity extends Activity {
private Spinner city=null;
private  List<CharSequence> city_name=null;
private ArrayAdapter<CharSequence> adaptercity=null;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		super.setContentView(R.layout.activity_main);
		this.city=(Spinner)super.findViewById(R.id.mycity);
		this.city_name=new ArrayList<CharSequence>();
		city_name.add("河南");
		city_name.add("上海");
		city_name.add("北京");
		this.city.setPrompt("请选择您的家乡");
		this.adaptercity=new ArrayAdapter<CharSequence>(this, android.R.layout.simple_spinner_item,city_name);
		this.adaptercity.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
		this.city.setAdapter(adaptercity);
		this.city.setAdapter(adaptercity);
	}

}
从零开始学android<Spinner下拉列表框的使用.9.&gt

Spinner的使用比前面的稍微多了一点东西,不过大家好好看看句都能看懂。
下节预报:ImageView和ImageButton的使用