2011-11-30 1 views
0

좋아, 안드로이드와 C#에 매우 익숙하다. 사실 오늘부터 시작되었습니다. 나는 VB에서 일반적으로 프로그램하지만, 어쨌든 MonoDroid를 사용하려고 시도하고 몇 가지 작은 자습서를 읽은 후에 혼자서 시도했습니다. 내가 원하는 것은 캔버스에 두 개의 라디오 버튼이 있다는 것입니다. 비활성화 된 버튼은 라디오 버튼 중 하나를 클릭 할 때만 활성화됩니다. 재미있게, 라디오 버튼을 코딩하여 다른 윈도우 폼이 윈도우 폼과 달리 클릭되지 않으면 선택을 취소하거나 someting이 누락되었습니다. 그러나 나는 그것을 관리했다. 그리고 '다음'버튼을 누르면 다음 페이지로 이동합니다.어떻게 프로그램을 맨 위로 루프 할 수 있습니까?

protected override void OnCreate(Bundle bundle) 
    { 

     base.OnCreate(bundle); 
     // Set our view from the "main" layout resource 
     SetContentView(Resource.Layout.Main); 
     RadioButton radSilent1 = FindViewById<RadioButton>(Resource.Id.radSilent); 
     RadioButton radVibrate1 = FindViewById<RadioButton>(Resource.Id.radVibrate); 
     Button button1 = FindViewById<Button>(Resource.Id.btnNext); 
     radSilent1.Click += delegate 
     { 
      button1.Enabled = true; 
      if (radSilent1.Checked == true) 
       radVibrate1.Checked = false; 
      else if (radVibrate1.Checked == true) 
       radSilent1.Checked = false; 
      { 
      } 
     }; 
     radVibrate1.Click += delegate 
     { 
      button1.Enabled = true; 
      if (radVibrate1.Checked == true) 
       radSilent1.Checked = false; 
      else if (radSilent1.Checked == true) 
       radVibrate1.Checked = false; 
      { 
      } 
     }; 
     // Set our view from the "secondry" layout resource 
     button1.Click += delegate { SetContentView(Resource.Layout.Secondry); }; 
    } 

이 두 번째 캔버스를 제공합니다 :

이 위의 내 코드입니다. 다른 버튼 '뒤로'가있는 곳. 해당 버튼을 누르면 첫 화면으로 이동하지만 위의 코드는 작동하지 않습니다. 두 개의 라디오 버튼을 누르면 두 가지 모두 체크되고, 버튼은 활성화되지 않습니다. 왜 이런 일이 생길까요? 나는이 일에 매우 새로운 것을 기억합니다. lol 도움을 주시면 감사하겠습니다.

감사합니다.

+0

onPause에서 클릭 핸들러를 분리하고 있습니까? – brianestey

+0

Err .. 다시 오시겠습니까? 롤 나는 아주 새로운이에요 당신이 무슨 뜻인지 모르겠어요. 그게 바로 내가 가진 모든 코드입니다. 죄송합니다. 도와 주셔서 감사합니다.]. – user959631

+0

@sound가 문제를 발견했다고 생각합니다. – brianestey

답변

1

새 레이아웃 (SetContentView(Resource.Layout.Secondry))을 사용하면 OnCreate(Bundle bundle)으로 초기화 된 모든 연결된 이벤트 처리기가 손실된다는 오류가 있습니다. 이 문제를 해결하려면 InitializeMainView()InitializeSecondView()과 같은 두 가지 메서드를 만들어야합니다. 여기서는 핸들러를 연결하여 선택한 레이아웃의 이벤트를 제어합니다. 그리고 레이아웃을 변경 한 후에는 선택된 뷰에 대해 init 메소드를 호출하면됩니다.

하지만 가장 좋은 해결책은 두 번째보기에 대해 새로운 별도의 활동을 만드는 것이라고 생각합니다.

+0

흠 나는 너를 거의 이해한다. 나는 Windows Forms에 익숙하다. 새로운 양식과 같은 새로운 활동이 있습니까? 그리고 새로운 활동을 어떻게 부르겠습니까? 나는 정확히 어떻게하는지 이해하지 못합니다. = S lol. 오, 그리고 라디오 버튼으로 내가하고있는 일은 맞습니까? 아니면 이것을 할 수있는 또 다른 좋은 방법이 있습니까? 감사합니다 – user959631

+1

당신이 그런 기초를 알지 않는 경우에, 당신에게 무엇을 말하는지 모른다. 이 튜토리얼을보고 지식을 얻으시기 바랍니다. 그것은 처음에 나를 도왔다 http://vimeo.com/20405301 – mironych

+0

좋아, 롤, 링크 주셔서 감사합니다. 그러나 나는 MonoDroid를 막 시작했다고 말했다. 어쨌든 고마워. – user959631

관련 문제