2017-05-07 18 views
0

にカードをクリックして、私は(下のテキストなし)私の写真exempleについてはXamarin項目RecyclerView

を示しリサイクラーとカードビューを作りました場所、名前など。

今、写真をクリックしたいと思います。写真の代わりに、私がクリックした写真の詳細が表示されます。

これは私のコードです:

class RecyclerViewHolder : RecyclerView.ViewHolder 
{ 
    public ImageView ImageView { get; set; } 

    public RecyclerViewHolder(View itemView) : base(itemView) 
    { 
     ImageView = itemView.FindViewById<ImageView>(Resource.Id.imageView); 
    } 
} 
class RecyclerViewAdapter : RecyclerView.Adapter 
{ 
    private List<PetEntity> _lstData; 


    public RecyclerViewAdapter(List<PetEntity> lstData) 
    { 
     _lstData = lstData; 

    } 

    public override int ItemCount => _lstData.Count; 

    public override void OnBindViewHolder(RecyclerView.ViewHolder holder, int position) 
    { 
     RecyclerViewHolder viewHolder = holder as RecyclerViewHolder; 

     var image = ImageHelper 
      .GetImageBitmapFromUrl(_lstData[position].PictureURL); 

     if (image == null) 
      viewHolder.ImageView.SetImageBitmap(
       ImageHelper.GetImageBitmapFromUrl(
        StaticConst.Uri + "Content/NA.png" 
        )); 
     else 
      viewHolder.ImageView.SetImageBitmap(image); 

    } 

    public override RecyclerView.ViewHolder OnCreateViewHolder(ViewGroup parent, int viewType) 
    { 

     View itemView = LayoutInflater.From(parent.Context). 
      Inflate(Resource.Layout.item, parent, false); 

     RecyclerViewHolder vm = new RecyclerViewHolder(itemView); 
     return vm; 
    } 
} 

私はいくつかのことを試みたが、成功せずに私はここに私のコードに追加しませんでした。

答えて

0

必要なビュー要素に.Clickメソッドを追加する必要があります。 また、それはOnCreateViewHolder方法で行わなければなりません。

public override RecyclerView.ViewHolder OnCreateViewHolder(ViewGroup parent, int viewType) 

それはこのようなものになります。

public override RecyclerView.ViewHolder OnCreateViewHolder(ViewGroup parent, int viewType) 
    { 

     View itemView = LayoutInflater.From(parent.Context). 
      Inflate(Resource.Layout.item, parent, false); 

     RecyclerViewHolder vm = new RecyclerViewHolder(itemView); 
     vm.ImageView.Click += delegate 
    { 

    //Your code here 

    }; 
     return vm; 
    } 
関連する問題