2016-05-10 9 views
9

Ich sehe die Warnung folgenden Compiler, wenn mein Projektes Aufbau:Android Databinding Compile Warnung: Methodenreferenzen mit '.' veraltet

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

ich für gradle 2.1.0 android-Plugin verwenden.

Meine Layout-Datei sieht wie folgt aus:

<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> 

jemand mich in die richtige Richtung zeigen kann diese Warnung zu lösen?

+0

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

Antwort

9

Pro die Fehlermeldung:

Warnung: '' Methode Referenzen mit ist veraltet. Statt 'item.onCardClicked', Gebrauch 'item :: onCardClicked'

@{item.onCardClicked} mit @{item::onCardClicked}

+0

Die Android-Dokumentation auf Android So ersetzen Databinding erwähnt nichts von Javas Methodenreferenzoperator, also zögerte ich, dies zu übernehmen. Es sieht so aus, als würde das die Konvention sein. Danke noch einmal. – WindsurferOak

+7

Beachten Sie, dass Android Studio diese Notation möglicherweise nicht unterstützt, sodass Sie beim Bearbeiten der Datei rote Squigglies erhalten. –

+1

Android Studio 2.1.3 mochte die Notation "::" im Layout-Editor nicht (aber das Projekt wurde noch erstellt). Android Studio 2.2.0 * gefällt mir im Layout-Editor nicht. ROFL !! Ich schätze, ich werde die Punktnotation anstelle von :: verwenden, weil ich es hasse, Fehlermarkierungen in einer Datei zu sehen - und ich kann psychologische Warnungen leichter ignorieren. –

Verwandte Themen