Android ImageView, Button 控制開關,紀錄當前狀態,更改按鈕或圖片背景
類似功能 : ImageView, Button 開啟後保持狀態,再點一下關閉。
假如有五個開關,就定義 int array 來記錄,array Size 定義 [5]
0 是開,1 是關
[0, 0, 0 ,0, 0] -> 狀態是全部關閉
[1, 1, 0, 0, 0] -> 狀態是第1和第2個開關是開啟
(開關數字由左至右分別為1到5)
當點選 ImageView, Button, CheckBox 等元件時,就將對應的 position 值設定成1
* 開啟第1個開關
Flag[0] = 1
* 開啟第5個開關
Flag[4] = 1
可以將 array 定義成全域變數方便使用 Flag = inrArrayOf(0, 0, 0, 0, 0)
詳細操作
如下控制第1個開關 Flag[0]
R.id.imageView0 -> {
// 第1個開關
if(Flag[0] == 0) {
// 若值 int 是 0,表示當前狀態關閉
// 執行開啟動作
// 將值設定成1後再更新背景圖片
setImageResoirce(R.mipmap.open)
Flag[0] = 1
} else {
// 若值 int 是 1,表示當前狀態開啟
// 執行關閉動作
// 將值設定成0後再更新背景圖片
setImageResoirce(R.mipmap.close)
Flag[0] = 0
}
}
常見問題
ex : 需要轉換成 True 或 False 該如何操作?
Flag[0] != 0
判斷 != 0。值是1,回傳 True。當前狀態是開啟
判斷 != 0。值是0,回傳 False。當前狀態是關閉
透過 SharedPreference, DataStore 來做紀錄,或重新要一次最新的資料。
ex : 回傳 Bit 值要注意事項,補 0
https://www.eeaseries.com/2022/06/int-bit-0-java-android-bit.html
後記
如果這篇文章對於你有幫助,可以幫忙分享給更多的人.文章內容如果有誤,可以在下方留言告知.本網站主要提供程式, 玩具相關資訊,可以訂閱獲得最即時的資訊.
留言
張貼留言