android - 我怎样才能有 2 个不同的 fragment ,实现相同的方法而无需编写两次代码?

标签 android oop kotlin data-binding interface

我有一个 fragment 屏幕,其中有一个用于为我的应用程序创建问题和答案的表单。对于这个 fragment ,我使用数据绑定(bind),然后我创建了许多函数来验证表单,并检查其他内容。
现在,我正在创建一个不同的 fragment 屏幕,我可以在其中编辑创建的问题和答案,为此,我想使用在另一个 fragment 上创建时使用的相同功能,例如验证用户正在编辑的字段的示例。
我考虑实现一个接口(interface),并将这些常用功能放在那里,这样我就可以在两个 fragment 上使用它。但是,在这些函数中,我使用 DataBinding,但我不知道如何在界面上使用它,因此它会获得关于一个 fragment 或另一个 fragment 的正确 XML 变量。
在下面的屏幕截图中,它显示我正在尝试使用绑定(bind),但是我无法指定我正在使用哪一个,否则代码将仅适用于 fragment ,而不适用于两者。因此,我尝试声明为 DataBindingUtil 但它不起作用。
Screenshot interface

最佳答案

如果您想采用这种方法,您可以将 View 添加为界面中的字段:

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
    }
    ....
  }
}
然后在 fragment 中创建绑定(bind)后初始化这些字段。

关于android - 我怎样才能有 2 个不同的 fragment ,实现相同的方法而无需编写两次代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63747621/

相关文章:

javascript - Kotlin JavaScript 到 TypeScript 定义文件

kotlin - 搜索 kotlin 空数据类主构造函数的解决方法

android - Android BitmapFactory.decodeByteArray 的正确使用

Java效率——子对象引用父对象

android - Google Play 上所有 Android 应用程序的列表

oop - 错误的方法名称及其对代码结构的说明

javascript - OOP 继承和对象实例

安卓 : Does viewmodelscope cancel all jobs on detach from window of fragment

android - 防止 ScrollView 占用太多高度

java - :app:processDebugResources Error in Android Studio