EditText值无法传递到变量的原因及代码修复咨询
问题原因分析
你遇到的核心问题是获取EditText内容的方式错误:
- 代码中直接对
findViewById<EditText>(...)返回的控件对象调用toString(),这个方法默认返回的是Android控件的对象描述字符串(格式类似android.widget.EditText{xxxxxx}),而非用户输入的文本内容。 - 当你直接给变量赋值测试字符串时,变量存储的是普通字符串,因此写入文件时表现正常。
修正方法
要获取EditText的输入文本,需要先通过.text属性(对应Java的getText()方法)拿到控件内的Editable对象,再转换为字符串:
// 替换原有的变量赋值代码 var_dbnombrevet = findViewById<EditText>(R.id.VetNombre).text.toString() var_clinicavet = findViewById<EditText>(R.id.VetClinica).text.toString() var_horaiovet = findViewById<EditText>(R.id.VetHorario).text.toString() var_telefonovet = findViewById<EditText>(R.id.VetTelefono).text.toString() var_direccionvet = findViewById<EditText>(R.id.VetDireccion).text.toString() var_emailvet = findViewById<EditText>(R.id.VetEmail).text.toString() var_socialesvet = findViewById<EditText>(R.id.VetSociales).text.toString()
这样就能正确获取用户在EditText中输入的内容,写入文件时就会是预期的文本了。
内容的提问来源于stack exchange,提问作者jose contreras
相关产品推荐
相关产品推荐

