【问题标题】:how to pass NumberPicker value (onValueChange) through Data Binding?如何通过数据绑定传递 NumberPicker 值(onValueChange)?
【发布时间】:2018-01-21 14:43:55
【问题描述】:

Android 号码选择器有:onValueChange(NumberPicker picker, int oldVal, int newVal)

如何通过数据绑定将这些参数(NumberPicker 选择器、int oldVal、int newVal)传递给我的视图模型?

<data>
    <import type="android.view.View" />
    <variable name="vm" type="com.my.view.model.MainActivityVM" />
</data>
/* ... bla ...*/
<NumberPicker
    android:onValueChange="@{() -> vm.callMethod(/*???whats here???*/)}" />

我想在每次更改时在我的视图模型中捕获新值。

【问题讨论】:

    标签: android android-databinding numberpicker


    【解决方案1】:

    像这样:

        android:onValueChange="@{(picker,oldv,newv) -> viewModel.onValChange(oldv, newv)}">
    

    我选择让我的ViewModel 类的签名只采用旧值和新值,而不是 NumberPicker。这取决于你。

    【讨论】:

    • 它有效!谢谢
    • 我不明白picker 的来源
    • @MwBakker 这就是视图 (NumberPicker) 本身。如果我没记错的话,这是给所有听众的强制性参数。
    【解决方案2】:

    您还可以像使用任何其他本机适配的视图一样使用双向数据绑定。

    <NumberPicker
        android:value="@={vm.observableIntVariable}"
        />
    

    别忘了平时的two-way requirements

    【讨论】:

      猜你喜欢
      • 2021-07-14
      • 2018-03-14
      • 2014-09-18
      • 2017-03-24
      • 1970-01-01
      • 2017-08-15
      • 2013-04-05
      • 1970-01-01
      • 2017-11-26
      相关资源
      最近更新 更多