2016-07-05 3 views
0

나는 등 주소, 예를 FIRSTNAME, 성을위한, 고객의 세부 사항을 표시 안드로이드에 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에/안드로이드 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; 
    } 
} 

, 나는 내 질문에`C 번호를 '태그를 추가 한 ViewHolder

+0

살펴보고 - 당신이 예를 들어 있나요 'Java '대신 C#을 사용 하시겠습니까? – CBreeze

+0

@CBreeze가 C# 예제로 업데이트되었습니다. C# 구문과 동일하지만 동일합니다. – user3185569

+0

정말 감사드립니다. 내 머리를 돌려 놓을 수없는 유일한 부분은'Layout.CustomView'입니다. 한 행을 시뮬레이트하는 XML 파일을 만들어야합니까? – CBreeze

관련 문제