如何解决我如何有2个不同的片段,实现相同的方法而无需两次编写代码?
我有一个片段屏幕,其中有一个用于为我的应用程序创建问答的表格。对于此片段,我使用数据绑定,然后创建了许多函数来验证表单并检查其他内容。
现在,我正在创建一个不同的片段屏幕,在该屏幕上,我将能够编辑所创建的问题和答案,为此,我想使用在另一个上创建时所使用的相同功能。片段,例如验证用户正在编辑的字段。
我考虑过实现一个接口,并将这些通用功能放在那里,因此我可以在两个片段上使用它。但是,在这些函数中,我使用了DataBinding,而且我不知道如何在接口上使用它,因此它将获得有关一个片段或另一个片段的正确XML变量。
在下面的屏幕快照中,它表明我正在尝试使用绑定,但是无法指定正在使用的绑定,否则代码仅适用于片段,而不适用于两者。因此,我尝试声明为DataBindingUtil,但没有用。
解决方法
如果要使用这种方法,可以将视图添加为界面中的字段:
interface IQuestionForm {
var newQuestionTextInput: EditText
var answer1TextField: EditText
fun validateAllParametersToCreateNewQuestion(){
var allTextInputSet = true
if (newQuestionTextInput.text.isNullOrEmpty()){
newQuestionTextInput.error = "You have to enter the question"
allTextInputSet = false
}
if (answer1TextField.text.isNullOrEmpty()){
answer1TextField.error = "You have to enter an answer"
allTextInputSet = false
}
....
}
}
然后在片段中创建绑定后初始化这些字段。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。