2012-03-15 7 views
0

Silverlight/WPF/WinFormsの背景からMonoDroidでAndroidプログラミングを調べ始めました。MonoDroid - XMLレイアウトとテンプレート

私は、何らかのフォームのテンプレートに基づいて構築された子要素を構築するViewGroupをどのように作成するかを考えています。これは、レイアウトXMLで指定可能であることが好ましい。あなたはこれをどのようにして指摘することができますか?

この種の動作を示すサンプルがありますか?

SL/WPF/WinRT ItemsControlのDataTemplateに似た動作を探しています。

答えて

1

あなたが探しているものはわかりませんが、各アイテムが特定のレイアウトに基づいているアイテムのリストを表示する方法を探しているようですね。その場合、ListViewクラスがおそらくあなたが探しているものです。 Androidでは、リスト内の各アイテムは任意のビューにすることができ、コードまたはXMLで定義されたレイアウトから作成することができます。 Xamarinには簡単なリストの例があります。開始するにはhereがあります。

リスト項目をさらにカスタマイズしたい場合は、組み込みのものを使用せずに独自のカスタムリストアダプタークラスを作成したい場合があります。これは次のようになります。

public class MyListAdapter : BaseAdapter<MyModel> 
{ 
    private readonly Activity _context; 
    private readonly IList<MyModel> _items; 

    public MyListAdapter(Activity context, IList<MyModel> items) 
    { 
     _context = context; 
     _items = items; 
    } 

    public override View GetView(int position, View convertView, ViewGroup parent) 
    { 
     var view = convertView 
        ?? _context.LayoutInflater.Inflate(Resource.Layout.Item, null); 

     view.FindViewById<TextView>(Resource.Id.Name).Text = _items[position].Name; 

     return view; 
    } 

    public override int Count 
    { 
     get { return _items.Count; } 
    } 

    public override long GetItemId(int position) 
    { 
     return position; 
    } 

    public override MyModel this[int position] 
    { 
     get { return _items[position]; } 
    } 
}