2016-05-10 71 views
9

我看到下面的編譯器警告建立我的項目時:Android Databinding編譯警告:使用'。'的方法引用已過時

warning: Method references using '.' is deprecated. Instead of 'item.onCardClicked', use 'item::onCardClicked'

我使用Android插件的gradle爲2.1.0。

我的佈局文件如下所示:

<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="item" 
     type="com.example.Card"/> 
</data> 
<LinearLayout android:layout_width="match_parent" 
     android:layout_height="match_parent"> 
    <TextView 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:clickable="true" 
     android:onClick="@{item.onCardClicked}"/> 
... 
</LinearLayout> 
</layout> 

能有人指出正確的方向來解決此警告?

+0

http://stackoverflow.com/a/37393655/212706 – ktutnik

回答

9

每錯誤消息:

警告:使用方法引用 ''已棄用。 而不是 'item.onCardClicked',利用 '項目:: onCardClicked'

因此,與@{item::onCardClicked}

+0

安卓Android上的文件替換@{item.onCardClicked} Databinding沒有提及Java的方法引用操作符,所以我很猶豫是否採用這種方法。看來,未來,這將是使用的慣例。再次感謝。 – WindsurferOak

+7

請注意,Android Studio可能不支持此標記,因此在編輯文件時可能會出現紅色的縮放。 –

+1

Android Studio 2.1.3不喜歡佈局編輯器中的「::」符號(但仍然構建了該項目)。 Android Studio 2.2.0 *仍然不喜歡佈局編輯器中的「::」。 ROFL !!我想我會用點符號代替::因爲我討厭在文件中看到錯誤標記 - 並且我可以在心理上更輕鬆地忽略gradle警告。 –