2

我希望通過android databinding庫將我的對象綁定到微調器行佈局。 Post 1Post 2未解釋我如何使用數據綁定以及如何綁定數據對象的多個字段(不僅是一個字符串)。如何使用數據綁定庫將自定義對象綁定到微調器佈局?

我的數據對象的樣子:

class Data{ 
    public final String imageUri; 
    public final String title; 
    public final int totalCount; 
} 

佈局祝看起來:

<!-- horisontal orientation --> 
<LinearLayout> 
    <!-- Icon --> 
    <ImageView/> 

    <!-- Title --> 
    <TextView/> 

    <!-- TotalCount --> 
    <TextView/> 
</LinearLayout> 

,以及它如何綁定我不知道......

+0

Android是否綁定庫不支持此功能,有趣的外觀在綁定的自定義數據的另一種方法是什麼對象和佈局 – Sergey

回答

1

您必須包裝你的整個佈局在佈局標籤使用數據綁定。這種方式,你可以分配模型到你的視圖所以這應該是你的佈局。

<layout> 
    <data> 
    <variable name="data" type="your.packagename.Data"> 
    </variable> 
    </data> 
    <!-- horisontal orientation --> 
    <LinearLayout> 
    <!-- Icon --> 
    <ImageView 
     android:src="@{data.imageUri}"/> 

    <!-- Title --> 
    <TextView 
     android:text="@{data.title}"/> 

    <!-- TotalCount --> 
    <TextView 
     android:text="@{data.totalCount}"/> 

    </LinearLayout> 
</layout> 

讓我們假設你正在使用的活動,以顯示微調&佈局的名字是custom_spinner.xml。那麼這裏是你如何設置數據佈局。設置微調適配器後,這裏就是你需要做的

Data data; // Data object 
CustomSpinnerBinding binding = DataBindingUtil.inflate(R.layout.custom_spinner); 
binding.setData(data); 

這應該是你定義適配器

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    CustomSpinnerBinding binding = DataBindingUtil.inflate(R.layout.custom_spinner); 
    binding.setData(dataList.get(position)); // you should pass dataList as an argument in Custom Adapter constructor 
} 
+0

你能解釋一下:誰設置了_data變量的佈局?我想了解這個機制 – Sergey

+0

我明白如何將數據綁定到佈局,但問題是:如何使用綁定機制與spinner適配器和一組數據對象? – Sergey

+0

你分享你的SpinnerAdapter –

相關問題