更改列表视图中的图像

时间:2012-07-01 16:27:10

标签: xamarin.android

我正在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显示勾号或只是一个方框)?

由于

1 个答案:

答案 0 :(得分:0)

最简单的方式

ImageView iv = e.View.FindViewById<ImageView>(Resource.Id.imageChecked);

完成工作!