2012-01-24 11 views
1

Androidリストビューで複合リストアイテムを定義しようとしていますが、それはあまりにも複雑なようです。 (これは私が複数のビュー/コントロールからリストビュー内の各アイテムをどこに構成するかを意味します)AndroidのListViewの複合リストアイテム

これは非常に単純でクリーンです。はい、私は残念ながらAndroidはバインディングをサポートしていませんが、私はAndroidでこれを達成する最良の方法を探しています。

XAMLの例は:あなたは、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> 

、その後、他の結合作業は、その後のDataContextとしてVMを設定し、パブリックプロパティとしてバインドされたアイテムをさらすようにする何のコードはありません。

私が知る限り、これをAndroidで実現するための多くの作業があります。私はカスタムListAdapter、多くの配線やオーバーライドなどを作成する必要があります。これを行うには良い方法はありますか?

Androidでこの問題を解決するためのベストプラクティスを示すdocs/tutorialを教えてください。

ありがとうございます!

答えて

2

この場合、WPFで作成した場合よりも多くのコードを書くことができます。 WPFのItemsControlでDataTemplateを定義するのと同じことは、カスタムアダプタを作成してgetViewメソッドを実装することです。

ListViewビデオの世界は、アダプターのベストプラクティスを理解するために必要なものです。

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

+0

おかげで素晴らしいビデオ - 私はXAMLを逃しません。 – IUnknown

+0

私はXAMLも好きですが、WPFコミュニティが「すべてがうまくいく」ということをあまりにも遠くにしていると感じています。私はMVVMとバインディングと依存関係注入とサービスロケータとORM、etcなどを使用し、バグを追跡する必要があるときに実装がどこにあるのか分からないところまで来ます。私はアンドロイドがこのような理由から安心していると感じています。バインディングフレームワークを手作業で行う代わりにコードを書き直してください。 – Rich

+0

@リッチ、それはalertDialogの複合itmesを表示するために同様のソリューションを使用することは可能ですか?ありがとうございます。 - Omer –

関連する問題