Xamarin Android ListView 控件使用

时间:2024-04-26 13:11:33

在项目中通常用到了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 控件使用