• Xamarin Android ListView 控件使用


    在项目中通常用到了ListView控件,示例如下:

    create the listitem class ,eg;

    public class ColorItem
        {
            public string ColorName { get; set; }
            public string Code { get; set; }
            public Android.Graphics.Color Color { get; set; }
    
        }
    

    create Adapter class: 

    Adapter类需要实现BaseAdapter, 并且需要在GetView method中指定,自定义ListItem的页面。得到listitem,中的控件值进行给值。

    public class ColorAdapter : BaseAdapter<ColorItem>
        {
    
            List<ColorItem> items;
            Activity context;
            public ColorAdapter(Activity context, List<ColorItem> items) : base()
            {
                this.context = context;
                this.items = items;
            }
            public override ColorItem this[int position] => items[position];
    
            public override int Count => items.Count;
    
            public override long GetItemId(int position)
            {
                return position;
            }
    
            public override View GetView(int position, View convertView, ViewGroup parent)
            {
                var item = items[position];
    
                View view = convertView;
                if (null == view)
                {
                    view = context.LayoutInflater.Inflate(Resource.Layout.ListItem,null);
    
                }
    
                view.FindViewById<TextView>(Resource.Id.textView1).Text = item.ColorName;
                view.FindViewById<TextView>(Resource.Id.textView2).Text = item.Code;
                view.FindViewById<ImageView>(Resource.Id.imageView1).SetBackgroundColor(item.Color);
    
                return view;
            }
        }

    Main.axml添加ListView控件。后台代码如下;

    public class MainActivity : Activity
        {
            List<ColorItem> colorItems = new List<ColorItem>();
            ListView listView = null;
            protected override void OnCreate(Bundle savedInstanceState)
            {
                base.OnCreate(savedInstanceState);
    
                // Set our view from the "main" layout resource
                SetContentView(Resource.Layout.Main);
                listView = FindViewById<ListView>(Resource.Id.myListView);
    
    
                colorItems.Add(new ColorItem() { Color = Android.Graphics.Color.DarkRed,ColorName="Dark Red",Code="8B0000"});
                colorItems.Add(new ColorItem() { Color = Android.Graphics.Color.SlateBlue, ColorName = "Slate Blue", Code = "Ga5ACD" });
                colorItems.Add(new ColorItem() { Color = Android.Graphics.Color.ForestGreen, ColorName = "Forest Green", Code = "228B22" });
    
                listView.Adapter = new ColorAdapter(this,colorItems);
            }
        }

    运行效果如下:

  • 相关阅读:
    技术分享会之——智能指针
    TeleMCU技术规格
    Golang-interface(一 基本使用)
    关于Mac虚拟机中安装的Windows系统键盘问题
    Android 高速开发系列 打造万能的ListView GridView 适配器
    [Erlang]怎样在Erlang中使用SSL
    Web最新力作有奖试读获奖名单发布
    每天复习Shell—ls
    Mininet系列实验(七):Mininet脚本实现控制交换机行为
    Mininet系列实验(七):Mininet脚本实现控制交换机行为
  • 原文地址:https://www.cnblogs.com/caodaiming/p/7788975.html
Copyright © 2020-2023  润新知