2011年4月6日 星期三

Spinner物件

Spinner物件
下拉式選單,需要應用到ArrayAdapter物件

程式碼
    private Spinner spinner;
    private String[] format = new String[] {
        "Item1",  "Item2",
    };

    ArrayAdapter<String> adapter =
        new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, format);
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
   
    spinner = (Spinner) findViewById(R.id.spinner);
    spinner.setAdapter(adapter);
    spinner.setOnItemSelectedListener(select);

    private OnItemSelectedListener select = new OnItemSelectedListener() {
        public void onItemSelected(AdapterView<?> arg0, View arg1, int pos, long arg3) {
            // pos代表所選項目的位置,從0開始累加
        }
        public void onNothingSelected(AdapterView<?> arg0) {
        }
    }

另外Spinner的items也可以在main.xml裡宣告
main.xml
    <Spinner
       
android:id="@+id/spinner"
       
android:layout_width="fill_parent"
       
android:layout_height="wrap_content"
       
android:prompt="@string/planet_prompt"
   
/>

String.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
   
<string name="planet_prompt">Choose a planet</string>
   
<string-array name="planets_array">
       
<item>Mercury</item>
       
<item>Venus</item>
       
<item>Earth</item>
       
<item>Mars</item>
       
<item>Jupiter</item>
       
<item>Saturn</item>
       
<item>Uranus</item>
       
<item>Neptune</item>
   
</string-array>
</resources>


public void onCreate(Bundle savedInstanceState) {
   
super.onCreate(savedInstanceState);
    setContentView
(R.layout.main);

    ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
        
this, R.array.planets_array, android.R.layout.simple_spinner_item);
    adapter
.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
   

    Spinner spinner = (Spinner) findViewById(R.id.spinner);
    
spinner.setAdapter(adapter);
    ........
}

沒有留言:

張貼留言