2016-02-09 7 views
7

Dokumentacja Google mówi, że zmienne mogą zostać przekazane do powiązanego układu layoutu z układu zawierającego, ale nie mogę go uruchomić, ale otrzymuję błąd powiązania danych ****. Identyfikatory muszą mieć typy zdefiniowane przez użytkownika z pliku XML. obsługujący go nie ma. tym XML wygląda następująco:Wiązanie danych Androida: jak przekazać zmienną, aby uwzględnić układ

<layout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:bind="http://schemas.android.com/apk/res-auto"> 

<data> 
    <import type="com.example.FocusChangeHandler"/> 

    <variable 
     name="handler" 
     type="FocusChangeHandler"/> 
</data> 

<!-- Some other views ---> 

    <include 
      android:id="@+id/inputs" 
      layout="@layout/input_fields" 
      bind:handler="@{handler}"/>   
</layout> 

a wliczone XML tak:

<layout xmlns:android="http://schemas.android.com/apk/res/android"> 
<EditText 
    android:id="@+id/nameEdit"  
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"  
    android:onFocusChange="@{handler.onFocusChange}"/> 
</layout> 

jestem w stanie odnieść się widoki z generowanego przez układ zawiera klasy wiążącej ale przechodząc zmienną prostu nie robi nie działa.

Odpowiedz

3

documentation określa

Tu, tam musi być zmienną użytkownika w plikach układ zarówno name.xml i contact.xml

Zakładam, trzeba mieć to w swojej zawarty układ :

<data> 
      <variable name="handler" 
        type="FocusChangeHandler"/> 
    </data> 
+0

Zabawne, ale już próbowałem tego, kiedy bawiłem się nim i otrzymałem komunikat o zmiennej, która została zdefiniowana wiele razy . Coś musiało zostać zmienione między Androidem Studio 2.0 Beta 3 i Beta 5, ponieważ teraz wydaje się działać. – pmellaaho

+0

Czy można przekazywać wiele zmiennych? Próbowałem: ' ' ale to nie wygląda pracować. – clu