android - kotlin.NotImplementedError: 未使用 EditText 上的 addTextChangedListenerher 实现操作
问题描述
当我调用addTextChangedListener(textWacther)
我EditText
并尝试运行该应用程序时,它只会在该字段中输入内容时关闭。我启用按钮返回的方式不正确吗?
class MainActivity : AppCompatActivity() {
lateinit var num1TextE: EditText
lateinit var resultText: TextView
lateinit var plusBtn: Button
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
num1TextE = findViewById(R.id.firstNum_TextE)
plusBtn = findViewById(R.id.plus_btn)
resultText = findViewById(R.id.result_TextV)
resultText.visibility = View.GONE
plusBtn.isClickable= false
plusBtn.isEnabled = false
num1TextE.addTextChangedListener(textWatcher)
plusBtn.setOnClickListener {
var num1 = num1TextE.text.toString().toInt()
var num2 = num2TextE.text.toString().toInt()
resultText.visibility = View.VISIBLE
resultText.text = "Result is ${num1 + num2}"
}
}
var textWatcher = object : TextWatcher {
override fun afterTextChanged(p0: Editable?) {
}
override fun beforeTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) {
TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
}
override fun onTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) {
var test: String = num1TextE.text.toString()
if(! test.isEmpty()) {
plusBtn.isClickable = true
plusBtn.isEnabled = true
}
}
}
}
日志:
2019-07-31 17:02:01.633 3078-3078/com.example.mycalculator E/InputEventSender: Exception dispatching finished signal.
2019-07-31 17:02:01.633 3078-3078/com.example.mycalculator E/MessageQueue-JNI: Exception in MessageQueue callback: handleReceiveCallback
2019-07-31 17:02:01.637 3078-3078/com.example.mycalculator E/MessageQueue-JNI: kotlin.NotImplementedError: An operation is not implemented: not implemented
at com.example.mycalculator.MainActivity$textWatcher$1.beforeTextChanged(MainActivity.kt:101)
解决方案
如果您不打算使用回调,请删除以空体TODO("not implemented")
离开。beforeTextChanged() { }
推荐阅读
- search - 我们是否需要在最新的 Apache Solr 中创建模式?如果是,那么如何为具有属性的产品创建架构?
- android - 如何在我的活动中调用广播接收器,以便当我点击按钮时它会激活?
- node.js - Heroku:process.env.NODE_ENV 未注册为“生产”(它注册为“开发”)
- c++ - 使用 ShellExecute 打开程序后无法运行
- alexa - 我正在尝试创建一个快速简报技能。但是每次我部署我的技能时都会出错
- c# - xUnit 不会在 Visual Studio 2017 中以 32 位模式运行
- compilation - 为什么在 Alpine 上使用 musl 编译失败而在 ArchLinux 上编译成功
- android - 无法在 kotlin 中为 android 应用程序设置 intellij
- php - 在php中明智地打印年份范围
- python - 无法使用地理(Python)从文本中提取城市名称