Android基础教程(九)之自定义下拉菜单模式----Spinner与setDropDownViewResource的应用

你们好,咱们这一节讲一下Android下的下拉菜单Spinner,就像是Swing的Combobox,html的<select>,因为手机画面有限,要在有限的范围选择项目,下拉菜单是比较好的选择.

Android提供的Spinner Widget的下拉菜单已经很是好用了,样式也还适用.但咱们本节的Demo的重点在于自定义下拉菜单里的样式,其关键在于调用setDropDownViewResource方法,以XML的方式定义下拉菜单要显示的模样.

Step 1: 建立一个新的Android 工程, 咱们命名为SpinnerDemo .

Step 2 :打开layout 文件夹,找到main.xml 将其内容改成:
html

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3.     android:orientation="vertical"
  4.     android:padding="10dip"
  5.     android:layout_width="fill_parent"
  6.     android:layout_height="wrap_content">
  7.     <TextView
  8.         android:layout_width="fill_parent"
  9.         android:layout_height="wrap_content"
  10.         android:layout_marginTop="10dip"
  11.         android:text="Please select a planet:"
  12.     />

  13.     <Spinner 
  14.         android:id="@+id/spinner"
  15.         android:layout_width="fill_parent"
  16.         android:layout_height="wrap_content"
  17.         android:drawSelectorOnTop="true"
  18.         android:prompt="@string/planet_prompt"
  19.     />
  20. </LinearLayout>
复制代码
注意:

the Spinner's android:prompt is a string resource. In this case, Android does not allow it to be a string, it must be a reference to a resource.  So...

Step 3:找到在res/values/string.xml,

在里面加入以下(黑体)一行:
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <resources>
  3.     <string name="hello">Hello World, SpinnerDemo!</string>
  4.     <string name="app_name">SpinnerDemo</string>
  5.     <string name="planet_prompt">Choose a planet</string>
  6. </resources>
复制代码
Step 4:在res/values/

文件夹下建立一个xml文件,命名为arrays.xml:
  1. <resources>
  2.     <string-array name="planets">
  3.         <item>Mercury</item>
  4.         <item>Venus</item>
  5.         <item>Earth</item>
  6.         <item>Mars</item>
  7.         <item>Jupiter</item>
  8.         <item>Saturn</item>
  9.         <item>Uranus</item>
  10.         <item>Neptune</item>
  11.     </string-array> 
  12. </resources>
复制代码
这是用户能够从Spinner Widget选择list 的选择项.

Step 5:打开SpinnerDemo.java,编辑内容以下:
  1. package com.android.test;

  2. import android.app.Activity;
  3. import android.os.Bundle;
  4. import android.widget.ArrayAdapter;
  5. import android.widget.Spinner;
  6. public class SpinnerDemo 
  7. extends Activity{
  8.         public void onCreate(Bundle savedInstanceState) {
  9.             super.onCreate(savedInstanceState);
  10.             setContentView(R.layout.main);            
  11.             Spinner s = (Spinner) findViewById(R.id.spinner);
  12.             ArrayAdapter adapter = ArrayAdapter.createFromResource(
  13.                     this, R.array.planets, android.R.layout.simple_spinner_item);
  14.             adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
  15.             s.setAdapter(adapter);
  16.         }
  17. }
复制代码
Step 6: 最后run it
(运行之)效果以下:

相关文章
相关标签/搜索