iT邦幫忙

DAY 16
4

Android 學習手札系列 第 16

Day 16 - Android - 點將

  • 分享至 

  • xImage
  •  

順利跟陸行鳥溝通後,終於要讓前往到 Moogle2 來進行點將來增援啦~
Moogle2:「終於輪到我了(泣~)」
廢話不多說,今天要介紹什麼呢!

點將!

怎麼做!

Moogle2:「賽飛羅斯卡夫卡艾克德斯!上陣!」

報告!點將完畢!

謎之音:「…看來有人又犯了皮癢症了…」

咳…好懷念的遊戲角色啊~(飄~)

今天的內容很簡單,點將講了半天,到底要怎麼做,請往下看之

請各位再延續昨天的專案,將之命名為「Day16_Choose」,今天要再將 Moogle2 給加回來啦!所以先跟各位新增一個 Moogle2Activity,畫面先不動,回頭在 Chocobo 的介面加上一個按鈕

這個按鈕也不用額外做什麼動作,就是很單純的切換到 Moogle2Activity 即可,若是您有依照昨天說明的內容將按鈕的偵聽式移出,獨立為一個函式的話,大概會和下面這段程式碼相去不遠:

//先在 setView() 函式裡宣告這個按鈕物件
Button btnSendToMoogle2 = (Button)findViewById(R.id.btn_send_to_moogle2);

再於偵聽式裡加入if判斷式,完整程式碼的區段如下

private View.OnClickListener btnClick = 
    new View.OnClickListener() {
        public void onClick(View v) {
            if(v.getId() == R.id.btn_back){
                finish();
            } else if(v.getId() == R.id.btn_show_toast){
                Toast.makeText(v.getContext(), String.valueOf(mSignalId) + mSignalString + ":" + mMessage, Toast.LENGTH_LONG).show();
            } else if(v.getId() == R.id.btn_send_to_moogle2){
                Intent intent = new Intent(v.getContext(), Moogle2Activity.class);
                startActivity(intent);
                finish();
            }
        }
    };

請記得在setView()的動作之後,為該按鈕設定偵聽式動作哦!
再來就回到 Moogle2 的身上啦~

看到畫面了嗎?沒錯!最適合用來點將的元件就是 CheckBox,這邊從框選區塊1 中,拉出了三個 CheckBox 到畫面上當成三個元素,並依序命名其id為"chk_sephiroth"、"chk_kefka"以及"exdeath",接著就是針對程式的部份來動作了。

請記得,只要我們要為介面元素寫入動作時的第一個念頭就是為其定義物件,而這個一念頭可以拆成三個動作:1.定義全域變數、2.新增setView()函式(函式命請自定)以及3.給東西,所以做完後會分成三個程式區段

//在onCreate()之前的全域變數
private Button mBtnChoose;
private Button mBtnBack;
private CheckBox mChkSephiroth;
private CheckBox mChkKefka;
private CheckBox mChkExdeath;

//在onCreate()外的setView()
private void setView(){
    mBtnChoose = (Button) findViewById(R.id.btn_show_choose);
    mBtnBack = (Button)findViewById(R.id.btn_back_to_pre);
    mChkSephiroth = (CheckBox)findViewById(R.id.chk_sephiroth);
    mChkKefka = (CheckBox)findViewById(R.id.chk_kefka);
    mChkExdeath = (CheckBox)findViewById(R.id.chk_exdeath);
}

//在onCreate()裡面要記得加入呼叫 setView()的程式碼

再來就是設定當我們按下"點將"按鈕時,要做的動作,這邊就延續將偵聽式提出的寫法

private View.OnClickListener btnChooseClick = 
    new View.OnClickListener() {
        public void onClick(View v) {
            String message = "";
				
            if(mChkSephiroth.isChecked()){
                message += mChkSephiroth.getText().toString() + "\n";
            }
            if(mChkKefka.isChecked()){
                message += mChkKefka.getText().toString() + "\n";
            }
            if(mChkExdeath.isChecked()){
                message += mChkExdeath.getText().toString();
            }
            Toast.makeText(v.getContext(), message, Toast.LENGTH_LONG).show();
        }
    };

設定好後,別忘了在setView()之後,設定按鈕的動作

mBtnChoose.setOnClickListener(btnChooseClick);
mBtnBack.setOnClickListener(btnBackClick);

這次將Back按鈕的偵聽式另外拉出來嘍!這個部份就請各位自行嘗試完成返回上一個activity的動作吧!

執行結果就如同下圖一般

今天的內容很容易吧^_^

《Day 15 - Android - 選擇 無中生有》


上一篇
Day 15 - Android - 選擇
下一篇
Day 17 - Android - 無中生有
系列文
Android 學習手札30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 則留言

0
SunAllen
iT邦研究生 1 級 ‧ 2012-10-10 03:19:06

今天的內容很容易吧^_^

忙忙暈...還是只有這個易沙發落寞

mosil iT邦新手 4 級 ‧ 2012-10-11 09:33:18 檢舉

暈

0
海綿寶寶
iT邦大神 1 級 ‧ 2012-10-10 15:17:26

還是魯大教授教的課比較簡單
忙暈

mosil iT邦新手 4 級 ‧ 2012-10-11 09:33:39 檢舉

汗

我要留言

立即登入留言