iT邦幫忙

2022 iThome 鐵人賽

DAY 18
0
Mobile Development

上班到一半突然被通知被炒了的我只好來寫個賓果系列 第 18

Day18 玩賓果時按錯格怎麼辦,反悔藥這就給你送來啦~

  • 分享至 

  • xImage
  •  

上期,讓按鈕點擊後可以變色,但為了避免有人點錯,想要點回去,所以來判斷按鈕狀態,當按鈕=false(沒有被點擊),按鈕=true(被點擊了),沒被點擊時按鈕要是白色,被點擊要呈現紅色,但要判斷有沒有被點擊就會需要判斷按鈕的狀態,所以要先去BingoButton這個class裡面去設定每個按鈕的狀態

加上設定狀態跟查看是否被選中
https://ithelp.ithome.com.tw/upload/images/20220912/20140063dczhoQvaX5.png

public boolean isSelected() {
   return m_bButtonStatus;
}

public void setStatus(Boolean bStatus) {
   m_bButtonStatus = bStatus;
}

設定完後要來確定什麼時候要給予狀態,感覺在切換模式的時候就要給予了,所以回到上一期有提到的地方changeGameModel()在這裡要加上,在成功切換遊戲模式時給予每個button的狀態=false;
https://ithelp.ithome.com.tw/upload/images/20220912/201400631aGf0BhwHx.png

//格子內都有數字時,生成每個格子的狀態(false),並且鎖定id是et和btn的按鈕,使其無法被點擊
for (int j = 0; j < m_alBingoButtons.size(); j++) {
m_alBingoButtons.get(j).setStatus(false);
}

再來就回到checkBingoButtonStatus()這裡修改一下,在這裡判斷按鈕的狀態,判斷完後再給予相對應的回應

紅色按鈕被點擊(true)->變回白色(false)&按鈕狀態設false
白色按鈕被點擊(false)->變成紅色(true)&按鈕狀態設true

//判斷按鈕(狀態)是否被點擊
private void checkBingoButtonStatus() {
   BingoButton m_BingoButton = m_alBingoButtons.get(m_iNowIndex);
   if (m_BingoButton.isSelected() == true) {
       m_BingoButton.getButton().setBackgroundResource(R.drawable.button_style);
       m_BingoButton.setStatus(false);//.isSelected() = false;
   } else if (m_BingoButton.isSelected() == false) {
       m_BingoButton.getButton().setBackgroundResource(R.drawable.button_style_red);
       m_BingoButton.setStatus(true);

   }
}

這樣就大功告成啦~再也不用擔心按錯按鈕了


上一篇
Day17 Android Studio 動態生成按鈕(button)變更外型&顏色
下一篇
Day19 哪有人可以在玩賓果時一直亂換數字的 作弊吧!
系列文
上班到一半突然被通知被炒了的我只好來寫個賓果30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言