2016-10-27 18 views
0

Xamarinに簡単なConnect 3ゲームを作成しようとしていますが、ImageViewが9個あり、Javaを使用してAndroidスタジオにConnect 3を作成しました。 Android Studioでは、最初からView.viewを読み込み、そのビューをImageViewに使用し、FindingViewById関数を使用せずにアプリケーション内の任意のimageViewを参照できます。このような。使用方法Xamarinの複数の画像ビューを参照する1つの画像ビュー変数

public void dropIn(View view){ 
count= 0; 
ImageView image = (ImageView)view; // You dont have to use FindViewby ID this referes to every imageView which is used. 
     if (count == 0) { 
     image.SetImageResource(Resource.Drawable.yellow); 
      count = 1; 
     } 
     else 
     { 
      image.SetImageResource(Resource.Drawable.red); 
      count = 0; 
     } 

マイQueston:私が正しくあなたを理解していれば、あなたはすべてのあなたのImageViewの者のために同じクリックイベントハンドラをしたい任意のXamarin

count=0 
ImageView image = FindViewById<ImageView>(Resource.Id.imageView1) //there are 9 Images like imageView2,imageView3 and etc till imageView9 
image.Click += delegate 
     { 
      if (count == 0) { 
      image.SetImageResource(Resource.Drawable.yellow); 
       count = 1; 
      } 
      else 
      { 
       image.SetImageResource(Resource.Drawable.red); 
       count = 0; 
      } 
+0

が重複する可能性を参照を追加するために[ Xamarin xml android:onClickコールバックメソッド](http://stackoverflow.com/questions/37800931/xamarin-xml-androidonclick-callback-method) – Cheesebaron

答えて

1

で同じことが実現することです。イベントのため

EventArgs

は、クリックする責任ImageViewのだろう送信者を、含まれない、クリックさに発砲:

void ImageClicked(object sender, EventArgs args) 
{ 
    var image = (ImageView)sender; 
    // do stuff to the image... 
} 

それからちょうどあなたのイメージにそれをフックアップ:

image1.Click += ImageClicked; 
image2.Click += ImageClicked; 

また、同様のdropInメソッドをエクスポートすることもできます。

[Export("dropIn")] 
public void DropIn(View view) 
{ 
    var image = (ImageView)view; 
    // do stuff 
} 

Androidがネイティブ側からそれを見つけることができるように、エクスポートするようにする必要があります。

次に、あなたはいつものようにあなたのXML/AXMLでそれを使用することができます。

<ImageView 
    android:onClick="dropIn" 

はこの作業を取得するには、適切にあなたがおそらく必要はMono.Android.Exportへの

関連する問題