今天我們要來移動我的們 Progress Bar 囉~~
MainActivity.kt
private fun movebar() {
discountSBar.setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener{
override fun onProgressChanged(seekBar: SeekBar?, progress: Int, fromUser: Boolean) {
if (priceEditText.text.isEmpty()) {
return
}else{
discountPercentTv.text = "打折($progress%)"
calculate(progress)
}
}
override fun onStartTrackingTouch(seekBar: SeekBar?) {}
override fun onStopTrackingTouch(seekBar: SeekBar?) {}
})
}
接下來我們可以透過 setOnSeekBarChangeListener 用匿名變數來使用 SeekBarChangeListener
並 override 三個 function 我們這次會用到的是 onProgressChanged 這個 function
我們可以取得 現在的 Progress Level 於是我們將顯示打幾折,與計算打折金額、打折後金額的 function 一起放進來。
我們就可以隨著使用者移動 seekBar 同時更新畫面。
那讓我們來看看計算的過程。
MainActivity.kt
private fun calculate(progress: Int) {
val totalDiscount = (value * progress / 100)
discountTotalTv.text = String.format("$%,.2f", totalDiscount)
val afterDiscount = value - totalDiscount
afterDiscountTv.text = String.format("$%,.2f", afterDiscount)
}
這裡我們就可以運用簡單的計算過程得到得到我們需要的打折金額、打折後金額。
這裡我們可以透過 String.format 的 function 來自定義我們所想要的格式。
以上面的例子來說就代表我希望能夠在 totalDiscount 前方加個錢號並且只顯示小數點後兩位數。
今天就先這樣囉~~ 明天見~~