android imagebutton事件不会在第一次单击时执行所有操作

rkttyhzu  于 2021-07-12  发布在  Java
关注(0)|答案(1)|浏览(319)

我有一个按钮来删除我的活动屏幕上的所有数据(图表、数据库数据和文本视图)并显示祝酒词。按这个按钮除了删除textview之外,其他的事情都会做,而textview只会在第二次按下时发生。代码在oncreate中。为什么会发生这种情况?我该如何解决?谢谢:)

findViewById<ImageButton>(R.id.delete_btn).setOnClickListener {
   pieChart.visibility = View.GONE
   textView.visibility = View.GONE
   appsViewModel.removeAll()
   Toast.makeText(this, "Successfully deleted all", Toast.LENGTH_SHORT).show()
}
zd287kbt

zd287kbt1#

正如@mayurgajra让我意识到的,其他一些代码干扰了textview中的更改。我用一个布尔值解决了这个问题。我在imagebutton事件中将其设置为true,现在我只在布尔值为false时修改其他代码中的textview可见性。

private var deleted: Boolean = false
override fun onCreate(savedInstanceState: Bundle?) {
        ...
        findViewById<ImageButton>(R.id.delete_btn).setOnClickListener {
            pieChart.visibility = View.GONE
            totalUsage.visibility = View.GONE
            deleted = true
            appsViewModel.removeAll()
            Toast.makeText(this, "Successfully deleted all", Toast.LENGTH_SHORT).show()
        }
}

private fun otherMethod(){
           ...
           if (!deleted) {
                  totalUsage.text = "Total usage today: $hour"
                  totalUsage.visibility = View.VISIBLE
           }
}

相关问题