2016-06-11 3 views
5

저는 Xamarin Android에 대해 배우기 시작했습니다. 동일한 클릭 이벤트 처리기가있는 버튼이 거의 없습니다. 내가 눌러 진 버튼을 인식하고이 버튼에서 값을 좀하고 싶습니다 "FlipperBtn_Click"방법에서 Xamarin에서 Android 버튼에 값을 지정할 수 있습니까?

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 

. 나는 많은 속성을 div로 할당하여 HTML5와 같은 것을 얻고 싶습니다. 나는 안드로이드 "태그"propertie에 대해 생각하고,이 같은 일을하려고했다 : 생각

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); 
    } 

버드 내가 몇 가지 이해가 안 돼요을 : A)의 SetTag 방법에 "키"를 사용하는 목적은 무엇인가? b) 어떻게 C# 클래스 객체를 Java.Lang.Object로 변환 할 수 있습니까?

답변

6

마술사를 찾기 위해 버튼에 태그를 설정할 필요가 없습니다.

는이 작업을 수행 :

자 마린 안드로이드에서
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; 
    } 
} 

당신이 태그를 설정하는 방법은 두 가지가 있습니다. 을 통해 property 또는 method을 통해.

button.SetTag(1, "value"); 

또는 :

button.Tag = "value"; 
+1

대단히 감사합니다! 내가 원하는 작품 :) – Shagohad

관련 문제