2012-07-10

Android下拉選單(spinner)應用(一) - 最基礎形式

Android的下拉選單名叫:spinner

spinner並不是直接讀取資料,而是經由一個適配器(Adapter)做為資料的橋接

適配器(Adapter)我們在另外的章節再做介紹,今天先拿最簡單的ArrayAdapter做示範

廢話不多說,下面就開始為您實作:

main.xml
<?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/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/blood_group"
        android:textAppearance="?android:attr/textAppearanceMedium" />


    <Spinner
        android:id="@+id/spinner1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />


</LinearLayout>


string.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string name="hello">Hello World, ReadtxtActivity!</string>
    <string name="app_name">Readtxt</string>
    <string name="blood_group">血型</string>
</resources>

ReadtxtActivity
package jim.readtxt;

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

public class ReadtxtActivity extends Activity {
  private Spinner spinner;  
  private ArrayAdapter<String> adapter;  
  private static final String[] Blood_group={"A型","B型","O型","AB型","其他"}; 
  
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        
        try{   
            spinner = (Spinner) findViewById(R.id.spinner1); 
            
            //將可選内容與ArrayAdapter連接起來  
            adapter = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,Blood_group);  
              
            //設置下拉列表的風格  
            adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);  
              
          //将adapter 添加到spinner中  
            spinner.setAdapter(adapter);  
                      
            
        }catch(Exception e){
            e.printStackTrace();
        }
    }                 
}

執行後畫面



後記:

此為最基礎的spinner下拉式選單應用,下個章節為您介紹spinner的其他應用。







4 則留言:

  1. 這個程式不需要像c++依樣做宣告嗎
    我造打完還是有錯誤

    回覆刪除
    回覆
    1. 你好:

      你指的是哪方面的宣告?

      Android是用Java開發的,所以如果對Java不了解請找Java相關書籍了解一下和c++差異

      基本上Java不像C++那麼的嚴謹

      程式都是有經過測試的,所以才會有畫面

      請用Debug模式+中斷點找看看是在哪一行出錯了或是連Build都無法。

      刪除
  2. TextView T01;
    CheckBox CB1,CB2,CB3;
    /* (非 Javadoc)
    * @see android.app.Activity#onCreate(android.os.Bundle)
    */
    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    T01=(TextView) this. findViewById(R.id.t01);
    CB1=(CheckBox) this. findViewById(R.id.cb1);
    CB2=(CheckBox) this.findViewById(R.id.cb2);
    CB3=(CheckBox) this. findViewById(R.id.cb3);

    CB1.setOnCheckedChangeListener(mylistener);


    像這樣的宣告

    回覆刪除
  3. 我想做地址的下拉,需要怎麼用
    縣市可以很多選項
    再點完縣市,有可以分許須多區

    回覆刪除

您的寶貴建議是我前進的動力!