Xamarin Android ListView 控件使用

Posted 关注移动端开发及后台业务技术的发展

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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);
        }
    }

运行效果如下:

 

以上是关于Xamarin Android ListView 控件使用的主要内容,如果未能解决你的问题,请参考以下文章

Xamarin 中 ListView 的不同视图形式 Android 和 UWP

使用 LinearLayout 向 ListView 添加标题,Listview 被推离屏幕(Xamarin Android)

Listview Itemclick事件未触发android xamarin

Xamarin.Android 使用 SimpleAdapter 打造 ListView 万能适配器

Android--ListView与数据绑定(Xamarin)

Xamarin Android Listview ClickEvent 不起作用