2011年11月21日 星期一

下拉式選單 Spinner物件的使用及加上menu

Spinner元件其實就是一個下拉式選單(DropDown),在處理資料的時候需要建立一個 Adapter物件,要處理的參數資料為(陣列或者是List物件)
Android手機上有個Menu鍵,當按下Menu時Activity時就會選擇處理這個請求, 在螢幕最下端會出現一個選單,這個選單就是OptionMenu




package com.demo.android.RadioA;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.TextView;

public class NextA extends Activity {
private TextView menu;
/** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.nexta);
        Spinner spinner=(Spinner)findViewById(R.id.spinner);
        //建立一個Adapter物件來放置下拉式選單物件
        ArrayAdapter<String> adapter=new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,new String[]{"國營","民營","股份有限公司","SOHO"});
       //選擇下拉式選單樣式
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spinner.setAdapter(adapter);
        //Menu
        menu=(TextView)findViewById(R.id.menu);
    }
public boolean onCreateOptionsMenu(Menu menu) {
// TODO Auto-generated method stub
//參數1:群組ID 參數2:itemID 參數3:item順序 參數4:群組名稱
menu.add(0,0,0,"說明");
menu.add(0,1,1,"離開");
return super.onCreateOptionsMenu(menu);
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
// TODO Auto-generated method stub
//依據itemID來判斷user點選哪一個Id
switch(item.getItemId())
{
      case 0:
     menu.setText("這是一個menu.....");
     break;
      case 1:
     //結束程式
     finish();
     break;
      default:
}
return super.onOptionsItemSelected(item);
}
   
}

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:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="這是新增的Activity"
        />
   <TextView  android:id="@+id/menu"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text=""
        />
   <TextView  android:id="@+id/work"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="工作單位:"
        />
   <Spinner android:id="@+id/spinner"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
       />
</LinearLayout>






7 則留言:

  1. 老師 新增class的superclass要選什麼?選錯有關係嗎??

    回覆刪除
  2. 你在那一段新增class,可以貼程式碼給我看嗎?或者選項有哪些可以告訴我嗎?

    回覆刪除
  3. 在choose a type處輸入Activity選Activity-android.app,不可以選錯

    回覆刪除
  4. 那我應該沒選錯..可是做完之後我點next就會錯誤然後關掉..

    回覆刪除
  5. 有3個程序你都做了嗎?
    1.new class
    2.AndroidMenifest.xml要新增
    3.xml也要新增一個nexta.xml命名不可大寫

    回覆刪除
  6. 阿..第二個沒做 現在可以了 謝謝老師~~

    回覆刪除