当前位置: 首页 > 知识库问答 >
问题:

如何通过数据绑定传递密封类

宋臻
2023-03-14

我有以下密封类:

sealed class Pot(
    val ball: Ball,
    val potType: PotType,
    val potAction: PotAction
) {
    class HIT(hitBall: Ball) : Pot(hitBall, PotType.HIT, PotAction.CONTINUE)
    object SAFE : Pot(Ball.NOBALL, PotType.SAFE, PotAction.SWITCH)
    object MISS : Pot(Ball.NOBALL, PotType.MISS, PotAction.SWITCH)
    class FOUL(foulBall: Ball, foulAction: PotAction): Pot(foulBall, PotType.FOUL, foulAction)
    class REMOVERED(removeBall: Ball): Pot(removeBall, PotType.REMOVERED, PotAction.CONTINUE)
    object ADDRED: Pot(Ball.RED, PotType.ADDRED, PotAction.CONTINUE)
}

我希望将此从xml传递给视图模型:

<data>
    <import type="com.example.snookerscore.fragments.game.Pot"/>
    // other variables
</data>

然后我在需要将信息传递给click处理程序的视图中使用lambdas:

<TextView
    android:id="@+id/game_btn_act_safe"
    style="@style/temp_btn"
    android:onClick="@{() -> gameViewModel.updateFrame(Pot.SAFE)}"
    // Other view Properties 
/>

我得到这个错误:

找不到标识符“pot”。检查标识符的拼写是否正确,并且没有或标记丢失。

我也尝试过直接导入pot.safe,但仍然不起作用

共有1个答案

王杰
2023-03-14

使用的;

<variable
            name = "sealedName"
            type="com.example.snookerscore.fragments.game.Pot"/>

已删除

<import type="com.example.snookerscore.fragments.game.Pot"/>

最终;

android:onClick="@{() -> gameViewModel.updateFrame(sealedName.SAFE)}"
 类似资料:
  • 我正在使用gradle credentials插件将用户和密码数据库传递给liquibase插件。另外,我使用spring data repositories和hibernate作为数据层,我希望传递给它与liquibase插件相同的配置。有一种通过gradle传递凭据的方法(我不想创建application.properties文件,因为凭据已经存储在凭据插件上)? 我正在使用以下代码向Liqu

  • 问题内容: 如何在Java中通过引用传递基本类型?例如,如何使传递给方法的值可修改? 问题答案: 在Java中,没有一种方法可以通过引用直接传递基元。 一种解决方法是改为将引用传递给包装类的实例,该实例然后将原语包含为成员字段。这样的包装器类可能非常容易为自己编写: 但是,一些预先构建的包装器类又如何,因此我们不必编写自己的包装器类?

  • 我想在点击页面底部时从数据库中检索数据。 现在,我所了解的是: URL。py 视图。py公司 index.html 基本上,它在开始时加载5项,而我试图实现的是,当我到达页面底部时,它会再加载1项。因此jQuery在控制台上工作。日志(“测试”)工作,在我的终端上显示 “获取/加载/HTTP/1.1”200 484 这也很好。 我想我搞砸了ajax不知何故。虽然我不确定。 你可能知道我是个笨蛋,但

  • 使用角(5)我显示电子邮件的列表 我的问题是在“名称”属性中。我希望索引“i”作为一个数字传递,尽管它传递i本身(字母)。正确传递索引的方法是什么? 我尝试了这样的东西: 但显然没有成功。 任何帮助都是受欢迎的。

  • 有什么简单的方法可以实现这一点吗? 这是我导航到路线的代码 这是我的路由模块 基本上,我希望执行与CreateAlbum组件是当前组件的子组件相同的操作,在这种情况下,我将使用@Input()