1. 程式人生 > >Xamarin Android ListView 控件使用

Xamarin Android ListView 控件使用

state findview save ada long you xamarin graphic 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 控件使用