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
(運行之)效果以下:

相關文章
相關標籤/搜索