更改方法中覆盖变量的值

问题描述 投票:0回答:1

我有一个带有抽象变量的基本片段,它想要在实现片段中处理我的搜索。

abstract class BaseFragment : Fragment() {
    abstract var handleSearch : () -> SymbolTypeView?
}

我在所有片段中覆盖此值,例如:

override var handleSearch: () -> SymbolTypeView? = { SymbolTypeView.Gold }

但是我的问题在选项卡中。当我加载一个选项卡时,也会加载下一个选项卡,我需要此加载,但我在 MainActivity 中使用值的变量获取最后一个加载选项卡,而不是当前选项卡。另外,我需要强制其他开发人员覆盖这个变量。所以我应该把它放在 BaseFragment 中。我尝试更改方法中的值,但这种方法不起作用。你对此有什么想法吗?

示例:我们有两个相邻的选项卡。我覆盖第一个选项卡中的变量并将值设置为 GOLD。另外,我将第二个选项卡变量覆盖为 COIN。当前选项卡是 Gold,我在 MainActivity 中调用此变量。所以我预计价值是 Gold,但我看到的是 COIN。

android kotlin android-studio android-fragments
1个回答
0
投票

简化方法而不是使其抽象。

open fun handleSearch() : SymbolTypeView? {
   // return default value
}
© www.soinside.com 2019 - 2024. All rights reserved.