Android Kotlin代码遇Unresolved reference: text/settext错误求助
解决Android Kotlin中getText/setText的「Unresolved reference」错误
你的报错核心是误用控件类型+方法名大小写错误,具体修正方案如下:
问题根源
TextInputLayout是包裹EditText的容器控件,它本身没有text属性和setText()方法,必须操作它内部的EditText实例。- Kotlin中Android控件的文本设置方法是
setText()(首字母大写),你写的settext()是错误的大小写形式。
修正后的完整代码
class MainActivity : AppCompatActivity() { private val egyptianPound = "Egyptian Pound" private val americanDollar = "American Dollar" private val AED = "AED" private val GBP = "GBP" // 修正拼写错误:GBD -> GBP override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val convertBtn: Button = findViewById(R.id.button) val amountInputLayout: TextInputLayout = findViewById(R.id.textInputLayout3) val toDropMenu: AutoCompleteTextView = findViewById(R.id.todropmenu) val resultInputLayout: TextInputLayout = findViewById(R.id.result_edit_text) val countryList = listOf(egyptianPound, americanDollar, AED, GBP) val adapter = ArrayAdapter(this, R.layout.drop_down_list, countryList) toDropMenu.setAdapter(adapter) convertBtn.setOnClickListener { // 获取TextInputLayout内部的EditText,空安全判断 val amountEditText = amountInputLayout.editText ?: return@setOnClickListener val amountStr = amountEditText.text.toString() // 防止非数字输入崩溃 val amount = amountStr.toDoubleOrNull() ?: return@setOnClickListener val result = amount * 30.95 // 操作结果输入框的EditText val resultEditText = resultInputLayout.editText ?: return@setOnClickListener resultEditText.setText(result.toString()) } } }
额外优化说明
- 修正了变量名拼写错误,符合Kotlin命名规范
- 增加空安全判断,避免空指针异常
- 增加输入合法性校验,防止非数字输入导致崩溃
内容的提问来源于stack exchange,提问作者Hazem Ahmed
相关产品推荐
相关产品推荐

