gpt4 book ai didi

安卓数据绑定(bind) : "Method references using ' .' is deprecated"

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:25:16 26 4
gpt4 key购买 nike

在我的应用中使用数据绑定(bind)时,我在编译时收到以下警告:

Warning:Method references using '.' is deprecated. Instead of 'handler.onItemClick', use 'handler::onItemClick'

请在下面查看我的 XML。

<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools">
<data>
<variable name="handler" type="ClickHandler"/>
<variable name="active" type="boolean"/>
</data>

<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:onClick="@{!active ? handler.onItemClick : null}"
android:background="@color/backgroundWhite"/>
</RelativeLayout>
</layout>

请注意条件语句中的

非常简单的消息,直到我更改“.”。到“::”。

android:onClick="@{!active ? handler::onItemClick : null}"

由于 onItemClick 在条件语句中,它似乎将两个::中的第一个解释为条件的“else”语句。在第二个“:”上,我得到错误:

<expr> expected, got ':'

编辑:正如@CommonsWare 在评论中建议的那样,将语句反转为 "@{active ? null : handler::onItemClick}"也没有帮助,显示了类似的错误(见评论)

EDIT2:显然,当剥离条件语句时,剩下 "@{handler::onItemClick}" ,它仍然给出错误:'!=', '%', '*', '+', ',', '-', '.', '/', <, <<, <=, '==', '>', '>=', '>>', '>>>' or '[' expected, got ':'使用点符号,编译时仍然给出警告

是否有任何方法可以转义这些::'s,使其被正确解释?

最佳答案

我的猜测是显示弃用警告是因为 Android 数据绑定(bind)目前与 Java 8 不完全兼容。将以下内容放入项目的 build.gradle 文件中应该会隐藏提到的警告。

android {
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
}

除非您在项目中使用 Java 8 功能。

关于安卓数据绑定(bind) : "Method references using ' .' is deprecated",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37323648/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com