2016-07-05 6 views
0

私は等のアドレス、たとえばファーストネーム、姓のために、顧客の詳細を表示するには、AndroidでListViewを使用しているよ...ロードは、私は、オブジェクトがいることを宣言した

アンドロイド(C#の)中にListViewコントロールにオブジェクト見える;

public class CustomerModel 
{ 
    public int ID { get; set; } 
    public string Name { get; set; } 
    public string Netname { get; set; } 
    public string Initials { get; set; } 
} 

私は、ユーザーがCustomerしかしこれまでのところ、私が持っていたことについて、さらにdetaislを見るために上をクリックすることができますListViewに/ AndroidのC#でコレクションをバインドする方法の例(Xamarin example)を探してきました運がない。

私のC#アプリケーションではObservableCollectionDataGridを使用しましたが、私はAndroidで同等のものを見つけるのに苦労しています(私は全く新しいアンドロイドです)。

Androidアプリで使用できるものはありますか?

答えて

0

データを保持するためにBaseAdapterを拡張し、リストの各値を画面のビューにバインドするgetViewメソッドを使用して各行を返すアダプタを作成する必要があります。 Hereから例:

listView = FindViewById<ListView>(Resource.Id.List); // get reference to the ListView in the layout 
// populate the listview with data 
listView.Adapter = new HomeScreenAdapter(this, tableItems); 
listView.ItemClick += OnListItemClick; // to be defined 

アダプタクラス:パフォーマンスの向上のために

public class HomeScreenAdapter : BaseAdapter<TableItem> 
{ 
    List<TableItem> items; 
    Activity context; 
    public HomeScreenAdapter(Activity context, List<TableItem> items) 
     : base() 
    { 
     this.context = context; 
     this.items = items; 
    } 
    public override long GetItemId(int position) 
    { 
     return position; 
    } 
    public override TableItem this[int position] 
    { 
     get { return items[position]; } 
    } 
    public override int Count 
    { 
     get { return items.Count; } 
    } 
    public override View GetView(int position, View convertView, ViewGroup parent) 
    { 
     var item = items[position]; 
     View view = convertView; 
     if (view == null) // no view to re-use, create new 
      view = context.LayoutInflater.Inflate(Resource.Layout.CustomView, null); 
     view.FindViewById<TextView>(Resource.Id.Text1).Text = item.Heading; 
     view.FindViewById<TextView>(Resource.Id.Text2).Text = item.SubHeading; 
     view.FindViewById<ImageView>(Resource.Id.Image).SetImageResource(item.ImageResourceId); 
     return view; 
    } 
} 

ViewHolder

+0

を見てみましょう、私は私の質問に 'Cの#'をタグ付けしました - あなたはのための例がありますか'Java'の代わりにC#? – CBreeze

+0

@CBreezeはc#の例で更新されました。同じですが、C#の構文です。 – user3185569

+0

本当に感謝しています。頭を丸くすることができない部分は 'Layout.CustomView'だけです。 1つの行をシミュレートするxmlファイルを作成する必要がありますか? – CBreeze

関連する問題