Android Studio中按钮操作TextView数值逻辑异常问题求助
嘿,我明白你遇到的问题了!咱们来一步步解决它~
问题出在哪?
你现在的代码里,id变量一直记着的是最开始那种每次加1的序列——点击翻倍按钮的时候,只是把2*id的结果显示出来,但根本没更新id本身。所以等你再点加1按钮时,程序还是用原来的id值加1,自然就回到了没翻倍的状态,这可不太对哦。
怎么改?
核心思路就是:用一个变量来实时保存当前TextView上显示的真实数值,不管是加X还是翻倍操作,都先更新这个变量,再同步到TextView上。这样所有操作都是基于当前的真实数值来进行的。
完整的修改代码
// 先定义一个变量,保存当前显示的数值,初始设为1 var currentValue = 1 // 初始给TextView设置数值 value.setText(currentValue.toString()) // 加X按钮(这里我先设成加1,你可以换成任何你想要的X值,比如改成currentValue += 5就是加5) plusBtn.setOnClickListener { currentValue += 1 value.setText(currentValue.toString()) } // 翻倍按钮 doubleBtn.setOnClickListener { currentValue *= 2 value.setText(currentValue.toString()) }
额外小优化(可选)
如果你想让加X按钮支持自定义数值(比如让用户输入要加的数),可以加个EditText来获取输入,代码大概是这样:
// 假设你布局里有个id叫inputX的EditText val inputX = findViewById<EditText>(R.id.inputX) plusBtn.setOnClickListener { // 读取输入的X值,如果输入为空或者不是数字,默认加1 val x = inputX.text.toString().toIntOrNull() ?: 1 currentValue += x value.setText(currentValue.toString()) }
这样不管你怎么点加X和翻倍按钮,数值都会跟着真实操作走,再也不会出现“回退”的情况啦!
内容的提问来源于stack exchange,提问作者Agent Orange
相关产品推荐
相关产品推荐

