2016-01-22 98 views
1

我有一個適用於活動的泛型基類的佈局。該活動的定義是這樣的:泛型類的數據綁定

public abstract class MyActivity<TUserType extends UserType> extends AppCompatActivity 

我想能夠使用數據該類綁定,但是當我嘗試在佈局XML使用設置從這個類,設置不被識別時我編譯。這是我的佈局:

​​

「progressBarVisibility」 在MyActivity定義,並且是公開的。我猜我可能不得不定義UserType,但我不知道如何做到這一點的XML。或者這還不支持?

回答

0

無需定義UserType。 這是我的情況:

公共抽象類BaseStateVM擴展BasePVM {

@Bindable 
public int getState() { 
    return state; 
} 

<data> 

    <import type="com.rayman.v2ex.widget.anotations.PageState" /> 

    <import type="com.rayman.v2ex.viewmodel.BaseStateVM" /> 

    <import type="android.view.View" /> 

    <variable 
     name="viewModel" 
     type="BaseStateVM" /> 
</data> 

<LinearLayout android:id="@+id/loading_view" 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_below="@+id/toolbar" 
    android:gravity="center" 
    android:orientation="vertical" 
    android:visibility="@{viewModel.state==PageState.LOADING?View.VISIBLE:View.GONE,default=visible}"> 

    <ProgressBar 
     android:id="@+id/progress" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" /> 
</LinearLayout> 

希望這會幫助你。 而完整的代碼是here