天天看點

Android 下拉清單Spinner控件

Android 下拉清單Spinner控件的用法。Spinner用來顯示使用者選擇的選項,當點選時将彈出清單供使用者選擇

package com.spinnerdemo;

import android.os.Bundle;
import android.app.Activity;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.Toast;

public class MainActivity extends Activity {

  /*
   * 下拉清單Demo
   * 
   * 下拉清單控件Spinner:每次隻顯示使用者選擇的選項,當再次點選時會彈出清單供使用者選擇
   */
  
  private String TAG = "SpinnerDemo";

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

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

    /*
     * Spinner的使用。
     * 
     * 注意:兩種資料來源方式
     *     自定義顯示樣式
     *      
     */

    // 第一種方式生成的資源檔案
    String str[] = { "China", "Russia", "Germany", "USA" };
    // 建立擴充卡并綁定資料源 第二個參數是樣式 還有很多種
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
        android.R.layout.simple_spinner_item, str);

    spinner.setAdapter(adapter);

    //隻能在values中一般名字為arrays.xml
    String[] item = getResources().getStringArray(R.array.country);
    ArrayAdapter<String> adapter2 = new ArrayAdapter<String>(this,
        android.R.layout.simple_spinner_item, item);

    spinner2.setAdapter(adapter2);

    // 添加事件

    spinner.setOnItemSelectedListener(new MyOnItemSelectedListener());

  }


  @Override
  public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
  }
  
  
  //添加監聽事件。
  public class MyOnItemSelectedListener implements OnItemSelectedListener{ 
      @Override 
      public void onItemSelected(AdapterView<?> parent, View arg1, int pos, long arg3){ 
          // 在這裡我們複習一下Toast的用法  
          Toast.makeText(parent.getContext(), 
                                    "The planet is "+  parent.getItemAtPosition(pos).toString(), 
                                     Toast.LENGTH_LONG).show(); 
      }

      @Override 
      public void onNothingSelected(AdapterView<?> arg0) {  
          //nothing to do 
      } 
  }

  
  
  
  

}      
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <!--used in spinner-->
    <string-array name="country">
        <item>China2</item>
        <item>Russia2</item>
        <item>Germany</item>
        <item>USA</item>
    </string-array>
</resources>