如何解决按钮未按预期做出反应,我正在尝试查看该功能是否无法正常工作或是否存在其他错误
该功能应使用用户输入来进行数学运算并输出到用户的文本框中。单击该按钮,绝对没有任何反应。 LogCat没有显示任何内容,因此我不确定如何解决此问题。我在同一项目中有两个类似的活动运行正常,所以我怀疑我可能无法正确进行数学运算,但是找不到任何其他信息。任何建议表示赞赏。
package com.example.awcc
import android.content.Intent
import android.os.Bundle
import android.widget.Button
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import kotlinx.android.synthetic.main.activity_main3.*
class Setup : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
editTextNumber120.text.toString().toInt()
}
}
class ThirdActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main3)
val button2 = findViewById< Button >(R.id.button2)
button2.setonClickListener {
val intent = Intent(this,SecondActivity::class.java)
startActivity(intent)
}
val button3 = findViewById< Button >(R.id.button3)
button3.setonClickListener {
val intent2 = Intent(this,MainActivity::class.java)
startActivity(intent2)
val button7 = findViewById< Button >(R.id.button35)
button7.setonClickListener {
var value1 = editTextNumber120.text.toString().toInt()
fun accessory(): Int {
return when {
value1 > 10 -> value1 * 0
value1 in 10..20 -> value1 * 1
value1 in 21..40 -> value1 * 2
value1 in 40..50 -> value1 * 3
value1 in 51..75 -> value1 * 4
value1 < 75 -> value1 * 5
else -> value1
}
}
val complete = accessory().toString()
try {
editTextNumber19?.setText(complete)
} catch (e: NumberFormatException) {
Toast.makeText(
applicationContext,"Please enter a 0 in the blank field",Toast.LENGTH_LONG
).show()
}
}
}
}
}
解决方法
editTextNumber120
在哪里定义?这段文字是做什么用的?
如果您希望该值从设置活动转移到活动3,则不是这样。每个活动都使用自己的数据,如果您需要在“活动”和“片段”之间共享数据,则需要为该信息创建一个数据模型。
示例:
public class MyDataModel {
protected MutableLiveData<Int> editTextData;
public MyDataModel() {
editTextData = new MutableLiveData<>();
}
// setter/getter - returns a LiveData object that allows
// you to observe the value for any changes
// If you don't need to observe changes,then just keep it as an int/string
}
通过这种方式,您的其他活动可以访问Setup活动中使用的相同数据。还要注意,重启后这种情况不会持续存在,因此,如果您希望安装程序包含应用程序上次启动时使用的先前数据,则可以查看SharedPreferences
。
我也不知道您的应用程序的结构,但是我会问为什么您需要这么多的活动?我正在使用的应用程序相当强大,但即使我只有一个活动(有几个片段),还有另一个活动用于设置,就是这样。
,如果有人遇到我这个问题,我就会找到答案。我使用的是Var而不是Val,因此实际上根本没有乘法或更改var。更改为Val,它就像一种魅力!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。