2017-02-18 6 views
0

Ich habe "Int kann nicht dereferenziert werden" Fehler, wenn ich Setup-Flag mit binären Operator innerhalb Layout mit Databinding versuchen.int kann nicht dereferenziert werden. Databinding binäre Operatoren

<layout xmlns:android="http://schemas.android.com/apk/res/android" 
     xmlns:app="http://schemas.android.com/tools"> 

    <data> 
     <variable 
      name="textState" 
      type="java.lang.Integer"/> 
    </data> 
     <android.support.v7.widget.AppCompatCheckBox 
      android:id="@+id/checkbox" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:text="Text" 
      app:paintFlags="@{checkbox.getPaintFlags() | textState.intValue()}"/> 
</layout> 

Antwort

0

Die Bestellung checkbox.getPaintFlags() | textState.intValue() von Binäroperanden als ((int)checkbox).getPaintFlags() interpretiert und es ist Ursache für den Fehler.

Aber! Wenn Ihre umgekehrte Reihenfolge der Operanden korrekt interpretiert wird. Und es funktioniert!

Ich wurde gewundert, als ich diese Funktion

herausfand
Verwandte Themen