iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 2
0
自我挑戰組

Kotlin Everyday:新手寫程式踩的坑系列 第 2

Day 2 ─用Kotlin做Tap Counter計數器 (2) Menu

  • 分享至 

  • xImage
  •  

昨天寫了Day1─Tap Counter計數器(1),介紹基本畫面設計及按鈕如何設定點擊事件,接下來要在menu裡做一個可以讓數字歸零的Item按鈕。

使用:Menu Item

Menu畫面

  1. Menu到底要怎麼做,可參考選單,res先按右鍵新增一個sample Data Directory資料夾,裡頭新增一個命名為menu的xml檔案,記得Resource Type要選menu
  2. menu.xml排版長這樣(如下圖),新增Menu Item
  3. Menu預設為下拉列表,Item有個屬性showAsAction,點選always會讓Item一直顯示在上方

設定MainActivity

  1. 如何顯示menu.xml的畫面:導入Menu與MenuInflater兩個類別,在onCreateOptionsMenu()事件裡以MenuInflater類別指定選單
  • onCreateOptionsMenu(menu: Menu?): Boolean
  • getMenuInflater(): MenuInflater
  1. 處理選單的事件
  • onOptionsItemSelected(item: MenuItem): Boolean
  • getItemId
  1. 把歸零的程式碼寫在onOptionsItemSelected實作方法下面
  2. Id綁定:item.itemId == R.id.menu_item
override fun onCreateOptionsMenu(*menu: Menu?): Boolean {
     val inflater : MenuInflater = menuInflater
     inflater.inflate(R.menu.menu, *menu)
                      //指定R.menu.名稱
     return super.onCreateOptionsMenu(*menu)
  }
  
  override fun onOptionsItemSelected(item: MenuItem): Boolean {
     if (item.itemId == R.id.menu_reset){  //id指定
     ...
     ...
  return super.onOptionsItemSelected(item)

*注意:寫完有遇到不能把東西歸零、沒有重新計的問題,原因在於剛剛var x = 0只包含在onCreate裡面,把它拉出來放在外面,這樣所有x都會應用到其性質


上一篇
Day 1 ─用Kotlin做Tap Counter計數器 (1) TextView、Button
下一篇
Day 3 ─用Kotlin做點餐介面 (1) EditText、Activity
系列文
Kotlin Everyday:新手寫程式踩的坑30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言