android - 视图绑定在 Button setOnClickListner 上不起作用... [*ERROR = Variable 'getOTPButton' is never used] (KOTLIN)
问题描述
请检查此错误。我在这个活动上使用了视图绑定来将数据保存在 Firebase 中。我在 setOnClickListner 上使用了 If...else 语句。
活动代码:
类RegisterSelection:AppCompatActivity(){
private lateinit var binding: ActivityRegisterSelectionBinding private lateinit var database: DatabaseReference @SuppressLint("SetTextI18n") override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) binding = ActivityRegisterSelectionBinding.inflate(layoutInflater) setContentView(binding.root) setContentView(R.layout.activity_register_selection) val checkPasswordTwo = findViewById<CheckBox>(R.id.checkPasswordTwo) val passwordText = findViewById<EditText>(R.id.passwordText) val confirmPassText = findViewById<EditText>(R.id.confirmPassText) val fullName=findViewById<EditText>(R.id.fullName).text.toString() val phoneNumberEdit=findViewById<EditText>(R.id.phoneNumberEdit).text.toString() val getOTPButton = findViewById<Button>(R.id.getOTPButton) binding.getOTPButton.setOnClickListener { if(fullName.isEmpty() && phoneNumberEdit.isEmpty()){ Toast.makeText(applicationContext,"Fill all the Fields!",Toast.LENGTH_LONG).show() } else{ database = FirebaseDatabase.getInstance().getReference("UserDataClass") val users = UserDataClass(fullName, phoneNumberEdit) database.child(fullName).setValue(users).addOnSuccessListener { binding.fullName.text.clear() binding.phoneNumberEdit.text.clear() Toast.makeText(applicationContext,"Success!",Toast.LENGTH_SHORT).show() }.addOnFailureListener { Toast.makeText(applicationContext,"Failed to Save!",Toast.LENGTH_SHORT).show() } val intent = Intent(this, getOTP::class.java) startActivity(intent) } } checkPasswordTwo.setOnClickListener { if (checkPasswordTwo.text.toString() == "Show Password"){ passwordText.transformationMethod = HideReturnsTransformationMethod.getInstance() confirmPassText.transformationMethod = HideReturnsTransformationMethod.getInstance() checkPasswordTwo.text = "Hide Password" } else{ passwordText.transformationMethod = PasswordTransformationMethod.getInstance() confirmPassText.transformationMethod = PasswordTransformationMethod.getInstance() checkPasswordTwo.text = "Show Password" } } } }
构建.gradle
buildFeatures{ viewBinding true }
用户数据类
data class UserDataClass(val fullName: String? = null, val phoneNumberEdit: String? = null)
输出仅显示 Toast “填写所有字段”。 任何建议将不胜感激。
解决方案
我建议,if(fullName.isEmpty() && phoneNumberEdit.isEmpty())
将其更改为if(fullName.isEmpty() || phoneNumberEdit.isEmpty()){
- 我假设您要确保两者都已填写。其次,由于您使用的是binding
,我还建议您以这种方式检查 null :binding.<edit text id>.text.isNullOrEmpty()
. 最后,看起来您正在通过读取编辑文本后通货膨胀中的文本值来初始化文本值,而不是读取您在按钮单击时输入的值。在您的onClickListener
中,读取您的值editText
,然后检查是否为空。
推荐阅读
- python - 这是 pypy 的用例吗?
- .net - “计划并等待运行”的任务未运行
- java - 重构代码中的问题/找出要使用的设计模式
- javascript - 谷歌地图不输入www就坏了
- typescript - 使用 TypeScript 和 webpack 在项目之间共享代码
- vue.js - 如何将 Vue 项目与 Velocity.js 集成,有什么例子吗?
- excel - vba if iserror (xxx) = true 然后返回导致错误的参考单元格
- html - 不同页面上的字体真棒图标颜色不同
- asp.net - 一台服务器上的 Azure 负载平衡应用程序错误
- python - Python3 + uwsgi - 终端中的特殊语言字符