kotlin 这是一个错误吗?“方法从未使用,”警告,尽管它在setOnClickListener中使用

rdrgkggo  于 2023-01-02  发布在  Kotlin
关注(0)|答案(1)|浏览(174)

我一直在关注关于如何在Android Studio中构建Android应用的https://developer.android.com/courses/android-basics-kotlin/unit-2教程。那里也引入了代码检查,作为修复警告和使代码完美的一部分。
添加我的MainActivity.kt代码:

package com.example.tiptime

import android.content.Context
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.view.KeyEvent
import android.view.View
import android.view.inputmethod.InputMethodManager
import com.example.tiptime.databinding.ActivityMainBinding
import java.text.NumberFormat

class MainActivity : AppCompatActivity() {
    private lateinit var binding: ActivityMainBinding

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        binding = ActivityMainBinding.inflate(layoutInflater)
        //setContentView(R.layout.activity_main)
        setContentView(binding.root)

        binding.tipResult.text = ""
        binding.calculateButton.setOnClickListener {
            calculateTip()
        }

        // Hide keyboard on enter press
        binding.costOfServiceEditText.setOnKeyListener { view, keyCode, _ ->
            handleKeyEvent(
                view,
                keyCode
            )
        }
    }

    private fun calculateTip() {
        val cost = binding.costOfServiceEditText.text.toString().toDoubleOrNull()
        if (cost == null) {
            binding.tipResult.text = ""
            return
        }

        val tipPercentage = when (binding.tipOptions.checkedRadioButtonId) {
            R.id.option_twenty_percent -> 0.20
            R.id.option_eighteen_percent -> 0.18
            else -> 0.15
        }

        var tip = tipPercentage * cost
        if (binding.roundUpSwitch.isChecked) {
            tip = kotlin.math.ceil(tip)
        }
        val formattedTip = NumberFormat.getCurrencyInstance().format(tip)
        binding.tipResult.text = getString(R.string.tip_amount, formattedTip)
    }

    private fun handleKeyEvent(view: View, keyCode: Int): Boolean {
        if (keyCode == KeyEvent.KEYCODE_ENTER) {
            // Hide the keyboard
            val inputMethodManager =
                getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
            inputMethodManager.hideSoftInputFromWindow(view.windowToken, 0)
            return true
        }
        return false
    }
}

我已经完成了获取用户输入的第2部分,我想确保没有代码警告。但是在对项目使用代码检查后,我注意到了几个警告。一个警告是关于calculateTip()的,它说:“从未使用方法。”尽管在setOnClickListener中使用了该方法。
按下“安全删除”按钮后,显示:“函数MainActivity.calculateTip()有1个用法,删除不安全。”这完全相反。这是代码检查错误还是我没有看到一些智能修复程序?
还附上了截图。
从未使用方法:warning that shows up
按下安全删除时检测到的用法:usages detected

cngwdvgl

cngwdvgl1#

我运行谷歌代码,它似乎可以在这方面,它使用calculateTip()函数。

相关问题