2014-05-06 98 views
0

我有一个自定义列表适配器为应用程序创建,但我不知道如何实现它。有人能告诉我如何?我试图得到一个县的ID并使用它,因为它是我的列表中的项目编号1,2,3 ...,而不是0,1,2,3。自定义列表适配器Xamarin.Android

这里是我的代码:

public class CustomAdapter : BaseAdapter<County> 
{ 
    Activity context; 
    public List<County> listCounty; 

    public CustomAdapter(Activity context, List<County> lCounties) 
     : base() 
    { 
     this.context = context; 
     this.listCounty = lCounties; 
    } 

    public override int Count { 
     get { return this.listCounty.Count; } 
    } 

    public override County this [int position] { 
     get { return this.listCounty[position]; } 
    } 

    public override View GetView (int position, View convertView, ViewGroup parent) 
    { 
     var item = this.listCounty[position]; 
     var view = convertView; 
     if (convertView == null || !(convertView is LinearLayout)) 
      view = context.LayoutInflater.Inflate (Resource.Layout.Main, parent, false); 
     var textTop = view.FindViewById (Resource.Id.listView) as TextView; 
     textTop.SetText (item.CountyName, TextView.BufferType.Normal); 
     return view; 
    } 

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

,并与它

public class County 
{ 
    public int ID { get; set; } 
    public string CountyName { get; set; } 
} 
+0

的代码片段在'GetItemId ()',尝试类似于'return this.listCounty [position] .ID;' –

回答

0

这里走的类的自定义列表适配器

public class NavDrawerListAdapter extends BaseAdapter { 

    private Context context; 
    private ArrayList<NavDrawerItem> navDrawerItems; 

    public NavDrawerListAdapter(Context context, ArrayList<NavDrawerItem> navDrawerItems){ 
     this.context = context; 
     this.navDrawerItems = navDrawerItems; 
    } 

    @Override 
    public int getCount() { 
     return navDrawerItems.size(); 
    } 

    @Override 
    public Object getItem(int position) {  
     return navDrawerItems.get(position); 
    } 

    @Override 
    public long getItemId(int position) { 
     return position; 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     if (convertView == null) { 
      LayoutInflater mInflater = (LayoutInflater) 
        context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE); 
      convertView = mInflater.inflate(R.layout.drawer_list_item, null); 
     } 

     ImageView imgIcon = (ImageView) convertView.findViewById(R.id.icon); 
     TextView txtTitle = (TextView) convertView.findViewById(R.id.title); 
     TextView txtCount = (TextView) convertView.findViewById(R.id.counter); 

     imgIcon.setImageResource(navDrawerItems.get(position).getIcon());   
     txtTitle.setText(navDrawerItems.get(position).getTitle()); 

     // displaying count 
     // check whether it set visible or not 
     if(navDrawerItems.get(position).getCounterVisibility()){ 
      txtCount.setText(navDrawerItems.get(position).getCount()); 
     }else{ 
      // hide the counter view 
      txtCount.setVisibility(View.GONE); 
     } 

     return convertView; 
    } 

} 
+0

那么我是不是很远? – user3564900

+1

它在JAVA中,而不是C# – outluch