2016-06-11 15 views
5

Xamarin Android hakkında yeni öğrenmeye başladım. Aynı tıklama etkinliği işleyicisiyle birkaç düğmem var. Ben basılmış hangi düğme tanımak ve bu düğmeden değeri elde etmek istiyorum "FlipperBtn_Click" yönteminde Xamarin'deki Android Düğmesine bir değer atamak mümkün mü?

private Button flipper1Btn; 
    private Button flipper2Btn; 
    private ViewFlipper flipper; 
    private TextView text; 

    protected override void OnCreate(Bundle bundle) 
    { 
     base.OnCreate(bundle); 
     // Set our view from the "main" layout resource 
     SetContentView(Resource.Layout.Main); 

     setControls(); 
     setEvents(); 
    } 

    private void setControls() 
    { 
     flipper = FindViewById<ViewFlipper>(Resource.Id.viewFlipper1); 
     flipper1Btn = FindViewById<Button>(Resource.Id.button1); 
     flipper2Btn = FindViewById<Button>(Resource.Id.button2); 
     text = FindViewById<TextView>(Resource.Id.textView1); 

    } 
    private void setEvents() 
    { 
     flipper1Btn.Click += FlipperBtn_Click; 
     flipper2Btn.Click += FlipperBtn_Click; 
    } 

    #region Events 

    private void FlipperBtn_Click(object sender, EventArgs e) 
    { 
     Button sendBtn = (Button)sender;  
    } 

    #endregion 

. HTML5'te istediğim kadar öznitelik atamak gibi bir şey elde etmek istiyorum. Ben robot "Etiket" propertie düşünmeye ve böyle bir şey yapmaya çalışıyordu: düşündüğü

private void setControls() 
    { 
     flipper = FindViewById<ViewFlipper>(Resource.Id.viewFlipper1); 
     flipper1Btn = FindViewById<Button>(Resource.Id.button1); 
     flipper2Btn = FindViewById<Button>(Resource.Id.button2); 
     text = FindViewById<TextView>(Resource.Id.textView1); 
     FlipperBtnTag tag1 = new FlipperBtnTag("tag1", "tag1Value"); 
     FlipperBtnTag tag2 = new FlipperBtnTag("tag2", "tag2Value"); 

     flipper1Btn.SetTag(1, tag1); 
     flipper1Btn.SetTag(2, tag2); 
    } 

Bud ben birkaç anlamıyorum: a) SetTag yönteminde "anahtar" kullanarak bir amacı nedir? b) C# sınıf nesnesini Java.Lang.Object içine nasıl dönüştürebilirim?

cevap

6

Cadıların tıklandığını bulmak için düğmelerde etiket ayarlamanıza gerek yoktur.

yapın:

Xamarin Android'de
flipper1Btn = FindViewById<Button>(Resource.Id.button1); 
flipper2Btn = FindViewById<Button>(Resource.Id.button2); 

flipper1Btn += Button_Click; 
flipper2Btn += Button_Click; 

void Button_Click(object sender, System.EventArgs e) 
{ 
    var button = (Button)sender; 

    switch (button.Id) 
    { 
     case Resource.Id.button1: 
      // Do Stuff here 
     break; 

     case Resource.Id.button2: 
      // Do Stuff here 
     break; 

     default: 
     break; 
    } 
} 

etiketleri ayarlamak için iki yolu var. property üzerinden veya method aracılığıyla.

button.SetTag(1, "value"); 

Veya:

button.Tag = "value"; 
+1

çok teşekkür ederiz! İstediğim gibi çalışıyor :) – Shagohad