我正在使用http://redth.info/2010/10/12/monodroid-custom-listadapter-for-your-listview上的教程代码,并在修改代码使其在 monodroid 4.2.3 下构建之后,我'已经对其进行了扩展,使得列表类看起来像这样
公共类动物{公共字符串名称{获取;放; }
public string Description
{
get;
set;
}
public int Image
{
get;
set;
}
public int ImageCheck
{ get; set; }
public bool Checked
{ get; set; }
}
ItemClick 事件代码如下所示
// ViewGroup parent = listView;
void listView_ItemClick(object sender, Android.Widget.AdapterView.ItemClickEventArgs e, ViewGroup parent)
{
var item = this.listAdapter.GetItemAtPosition(e.Position);
var view = (e.View ?? this.LayoutInflater.Inflate(Resource.Layout.customlistitem, parent, false)) as LinearLayout;
ImageView iv = FindViewById<ImageView>(Resource.Id.imageChecked);
if (item.Checked == false)
{
item.Checked = true;
item.ImageCheck = Resource.Drawable.@checked;
}
else
{
item.Checked = false;
item.ImageCheck = Resource.Drawable.checkbox;
}
iv.SetImageResource(item.ImageCheck);
}
虽然这在我添加的情况下有效
Console.WriteLine("Animal clicked = {0}", item.Name);
模拟器输出会显示被点击的动物的名字,ImageView 总是在列表的顶部。
有没有办法在正确的位置打勾(例如,如果我单击第 5 个项目。第 5 个 ImageView 显示一个勾号或只是一个框)?
谢谢