Android 数据绑定(bind) onLongClick 不工作

标签 android android-layout android-databinding android-mvvm

我有一个 TextView ,我需要为其创建一个 onLongClick 监听器。 现在对于相应的 View 模型,它有一个函数 sendLogs() 处理 onClick 的逻辑。如果我将 onClick 更改为 onLongClick 函数,则永远不会调用。有什么办法让它适用于 onLongClick 吗?

onClick 直接链接到我的模型类函数而不是 onLongClick。所以我认为模型类绑定(bind)是正确的,但我可能需要在这里做一些额外的工作。

<data>
    <import type="android.view.View" />

    <variable
        type="com.aaa.bbb.viewmodel.SystemSettingsViewModel"
        name="systemSettings"
    </variable>
</data>

<TextView
    android:gravity="end"
    android:id="@+id/tv_logging"
    android:layout_centerVertical="true"
    android:layout_height="wrap_content"
    android:layout_marginRight="8dp"
    android:layout_width="wrap_content"
    android:onClick="@{() -> systemSettings.sendLogs()}"
    android:text="@string/enable_logs"
    android:textAlignment="viewEnd" />

最佳答案

我设法正确地工作了。我怀疑这是否已正确记录。

在 xml 中

android:onLongClick="@{(view) -> presenter.onLongClickOnHeading(view)}"

在演示者 View 模型类中

public boolean onLongClickOnHeading(View v) { 
   //logic goes here
   return false; 
}

注意:此方法签名应完全采用此格式。否则将在运行时抛出出价错误。

关于Android 数据绑定(bind) onLongClick 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46680862/

相关文章:

java - CustomControl,xml 属性不适用于数据绑定(bind)

android - 更改 LiveData 时 DataBinding 不会更新值

Android studio DateFormat 错误 - 拒绝选择 android.text.format.DateFormat

android - 重新加载应用程序时未关闭 WebSocket(React Native)

Java - Android - view.getContext() 含义

Android查看背景: How to specify background color for PNG transparency?

android - 左对齐文本,右对齐复选框

安卓模拟器 : both soft input and hard keyboard input

Android MediaCodec 不工作

Android DataBinding setVariable() 后跟 getVariable() 调用返回 null