2012-01-24 128 views
1

我想在Android ListView中定義一個複合列表項目,但它似乎過於複雜。 (由此我的意思是我在哪裏撰寫列表視圖中的每個項目從多個視圖/控件)Android ListView中的複合列表項目

在Xaml中這是非常簡單和乾淨。是的,我知道不幸的Android不支持綁定,但我正在尋找在Android中完成此操作的最佳方式。

XAML例如:

<ListBox ItemsSource="{Binding Days}" x:Name="DataList"> 
    <ListBox.ItemTemplate> 
     <DataTemplate> 
      <StackPanel> 
       <TextBlock Text="{Binding DateString}" x:Name="DateBox" /> 
       <TextBlock Text="{Binding Name}" x:Name="NameBox"/> 
      </StackPanel> 
     </DataTemplate> 
    </ListBox.ItemTemplate> 
</ListBox> 

如果你知道XAML中,那麼有沒有代碼,以使其他的綁定工作,然後設置VM作爲在DataContext並露出結合的項目,如公共屬性。

據我所知,在Android中做這件事有很多工作要做。我需要創建一個自定義的ListAdapter,大量的佈線和覆蓋等。有沒有更好的方法來做到這一點?

有人可以請我指出文檔/教程,演示在Android中解決這個問題的最佳實踐。

謝謝!

回答

2

在這種情況下,是的,如果您在WPF中完成編寫的代碼,則需要編寫更多代碼。在WPF中的ItemsControl上定義一個DataTemplate的等價物正在製作一個自定義適配器並實現getView方法。

ListView視頻的世界是瞭解適配器最佳實踐的必備手段。

http://www.youtube.com/watch?v=wDBM6wVEO70

+0

謝謝偉大的視頻 - 我想念XAML。 – IUnknown

+0

我也喜歡XAML,但我覺得WPF社區認爲「一切正常」的方式太過分了。我使用MVVM和綁定以及依賴注入和服務定位器以及ORM等等,當你需要追蹤一個bug的時候,你不知道你的實現在哪裏。由於這個原因,我發現Android是一種解脫,你再次編寫代碼而不是欺騙綁定框架,手動讓你的UI工作。 – Rich

+0

@很好,是否可以使用類似的解決方案來顯示alertDialog中的複合對象?在此先感謝 - Omer –