我怎样才能有 2 个不同的片段,在不编写代码两次的情况下实现相同的方法?

How can I have 2 different fragment, implementing same methods without writing the code twice?

我有一个片段屏幕,其中有一个用于为我的应用程序创建问题和答案的表单。对于这个片段,我使用了数据绑定,然后我创建了许多函数来验证表单,并检查其他内容。

现在,我正在创建一个不同的片段屏幕,我将能够在其中编辑创建的这个问题和答案,为此,我想使用我在创建时使用的相同功能另一个片段,例如验证用户正在编辑的字段。

我想过实现一个接口,把这些常用的功能放在那里,这样我就可以在两个片段上使用它。但是,在这些函数中我使用了 DataBinding,我不知道如何在界面上使用它,所以它会得到关于一个片段或另一个片段的正确 XML 变量。

在下面的屏幕截图中,它显示我正在尝试使用绑定,但我无法指定我正在使用哪个绑定,否则代码将仅适用于片段,而不适用于两者。因此,我尝试声明为 DataBindingUtil,但没有成功。

Screenshot interface

如果您想采用这种方法,您可以将视图作为字段添加到界面中:

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
    }
    ....
  }
}

然后在片段中创建绑定后初始化这些字段。