Kotlin edittext editable to string returns nothing
有没有人经历过这个?
我正在尝试从editText获取输入值。 我做了以下。
val input = edittext_input.text.toString()
但结果是没有什么。 我试着记录edittext_input.text,它有一个值。 你们知道为什么会发生这种情况吗? 这是kotlin的错误吗?
我find的一个解决方法是这样的。
val input = "${edittext_input.text}"
更新:实际完整代码:
private fun setupUI() { val inputTestText = (findViewById(R.id.edittext_username)).text val inputTestTextToString: String = 100.toString() val userInput: String = edittext_username.text.toString() val passInput = "${edittext_password.text}" findViewById
结果:
inputTestText is null? false inputTestTextToString: 100 A user: password: B user: test password: test
您在onClickListener之前分配值,
val inputTestText = (findViewById(R.id.edittext_username)).text val inputTestTextToString: String = 100.toString() val userInput: String = edittext_username.text.toString() val passInput = "${edittext_password.text}"
并在按钮点击监听器内打印值,
在这里,variables得到空值,因为最初没有文本。 把东西你点击按钮后,显示空值。 和${edittext_username.text}
通过这个你正在从edittext字段获取值。
你只需要把分配线放在onClickListener里面。
最终的代码应该是,
findViewById
下面 – 使用kotlin-activity编辑文本的例子可能是你没有在activity中初始化edittext?
XML
活动
import android.app.Activity import android.os.Bundle import android.widget.Button import android.widget.EditText import android.widget.Toast class MainActivity : Activity() { lateinit var button: Button lateinit var edittext: EditText override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) edittext = findViewById(R.id.edittext) button = findViewById(R.id.button1) button.setOnClickListener { val input = edittext.text.toString() Toast.makeText(this, input, Toast.LENGTH_LONG).show() } } }
编辑
对于你的代码:variables(’inputTestText’,’userInput’)在onCLickListener之前被初始化,所以当你按下按钮时,variables已经存在了,它们等于“”
‘$ {edittext_username.text}”$ {edittext_password.text}’ – 这些不是variables,所以数据是在点击按钮时获取的。
- Kotlin kotlinClass.class.getName()不能返回包名,而只能返回简单的类名
- 无法分析:org.jetbrains.kotlin.kapt3.diagnostic.KaptError:批注处理时出错
- Android Studio 3.0.1(错误:’java’插件已被应用,但与Android插件不兼容。)
- Kotlin到Java(图书馆帮助)
- Kotlin Parcelize Exception API <21
- Kotlin中的一个类和一个对象之间的区别
- Kotlin:在Activity中使用BroadcastReceiver时未解析的本地类
- 如何在Kotlin中制作一个双向转换器? (在Java中工作)
- 项目不会与Kotlin 1.1.3一起构建