0

私はhttp://redth.info/2010/10/12/monodroid-custom-listadapter-for-your-listviewのチュートリアル コードを使用しており、モノドロイド 4.2.3 でビルドされるようにコードを変更した後、リストクラスが次のようになるように拡張しました

public class Animal { public string Name { get; 設定; }

    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 に目​​盛りまたは単なるボックスが表示されます)。

ありがとう

4

1 に答える 1

0

最も簡単な方法

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

仕事終わり!

于 2012-07-02T20:15:53.953 に答える