這段代碼是在 oncreate 之前撰寫的,它作業正常,但是當我將它向下移動以創建一個函式時,這個“它”顯示了這些錯誤,我檢查過沒有像“它”這樣的變數
這是代碼
if (manager.getInt("limitOfBox") > 0) {
Bloom.with(this)
.setParticleRadius(5f)
.setEffector(
BloomEffector.Builder()
.setDuration(1500)
.setAnchor(
(it.width / 2).toFloat(),
(it.height / 2).toFloat()
)
.build()
)
.boom(it)
這些是錯誤,“它”變成了紅色



所以請告訴我寫什么而不是“它”,這樣它就不會拋出錯誤。
這是運行完美的舊代碼:-
class LuckyBoxActivity : AppCompatActivity() {
lateinit var binding: ActivityLuckyBoxBinding
lateinit var db: FirebaseFirestore
lateinit var myRepo: MyRepo
lateinit var manager: PrefManager
val activity = this
@SuppressLint("SetTextI18n")
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityLuckyBoxBinding.inflate(layoutInflater)
setContentView(binding.root)
showProgress()
var winningCoins = 0
var limit = 0
db = FirebaseFirestore.getInstance()
myRepo = MyRepo(this)
manager = PrefManager(this)
loadBanner()
db.collection("Earning").document("box")
.addSnapshotListener { value, error ->
if (error == null) {
val data = value?.toObject(WatchVideoModel::class.java)
winningCoins = data?.winningCoins.toString().toInt()
limit = data?.limit.toString().toInt()
Log.e("luck Box", "onCreate: $winningCoins")
Log.e("luck Box", "onCreate: $limit")
if (manager.getInt("limitOfBox") == 102) {
binding.limit.text = "$limit"
manager.setInt("limitOfBox", limit)
} else {
binding.limit.text = manager.getInt("limitOfBox").toString()
}
dismissProgress()
}
}
binding.giftImg.setOnClickListener {
val winningAmount = (0..winningCoins).random()
if (manager.getInt("limitOfBox") > 0) {
Bloom.with(this)
.setParticleRadius(5f)
.setEffector(
BloomEffector.Builder()
.setDuration(1500)
.setAnchor(
(it.width / 2).toFloat(),
(it.height / 2).toFloat()
)
.build()
)
.boom(it)
Handler(Looper.getMainLooper()).postDelayed(Runnable {
binding.giftImg.visibility = View.INVISIBLE
}, 1000)
Handler(Looper.getMainLooper()).postDelayed(Runnable {
manager.setInt("limitOfBox", manager.getInt("limitOfBox") - 1)
binding.limit.text = manager.getInt("limitOfBox").toString()
binding.resultText.visibility = View.VISIBLE
if (winningAmount == 0) {
binding.resultText.text =
"Oops !! better luck next time..."
} else {
binding.resultText.text = "$winningAmount Coins"
myRepo.addCoins(winningAmount.toString().toDouble())
}
}, 1500)
} else {
showToast("Daily Limit Over")
}
}
}
fun loadBanner() {
val view = BannerView(this@LuckyBoxActivity, constants.banner, UnityBannerSize(320, 50))
view.load()
binding.bannerAd.addView(view)
}
companion object {
private const val TAG = "LuckyBoxActivity"
}
}
uj5u.com熱心網友回復:
it這里代表您想要的視圖Bloom Effect。
參考庫本身給出的例子。
Bloom.with('activity')
.setParticleRadius(5)
.setEffector(new BloomEffector.Builder()
.setDuration(800)
.setAnchor(view.getWidth() / 2, view.getHeight() / 2)
.build())
.boom(view);
這里的視圖是要在其中創建效果的專案。
uj5u.com熱心網友回復:
您移動代碼的位置很可能是在作用域函式內。如果it沒有您向我們展示您從哪里獲得它的 onCreate 中的代碼,我們無法告訴您是什么。
一個非常常見的作用域函式是作用域函式let。如果你做例如
val a = "test"
a.let {
print(it)
}
然后it是指變數a。也許那里使用了類似的東西。
您可以在此處閱讀有關范圍函式的更多資訊
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/383393.html
