2011-11-30 4 views
0

ОК, я очень новичок в Android и C#. Просто началось сегодня на самом деле. Обычно я программирую в VB, но в любом случае я пытался использовать MonoDroid, и после нескольких небольших уроков я попробовал что-то самостоятельно. Я хочу, чтобы на холсте было два переключателя. И отключенная кнопка, она активируется только при нажатии на одну из переключателей. Смешно, вам нужно закодировать радиокнопки, чтобы снять флажок, когда нажимается другая, в отличие от оконных форм, или мне не хватает сообщений. Но мне это удалось. И когда вы нажимаете кнопку «Далее», она переходит на следующую страницу.Как я могу заставить программу зациклиться на вершине?

Это мой код выше:

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

Вы отсоединяете обработчики Click в onPause? – brianestey

+0

Err .. приходите еще? lol Я очень новичок в этом, я понятия не имею, что вы имеете в виду. То есть весь код, который у меня есть на данный момент. Сожалею. И спасибо за помощь =]. – user959631

+0

Я думаю, что @sound нашла свою проблему. – brianestey

ответ

1

Ошибка в том, что при использовании нового макета (SetContentView(Resource.Layout.Secondry)) вы потеряли все прикрепленные обработчики событий, которые были инициализированы в OnCreate(Bundle bundle). Чтобы решить эту проблему, вам нужно создать 2 метода: InitializeMainView() и InitializeSecondView(), где прикреплять обработчики для управления событиями на выбранном макете. И после изменения макета вы просто вызываете метод init для выбранного вида.

Но я считаю, что лучшим решением будет создание новой отдельной активности для второго вида.

+0

Хм, я почти понимаю тебя. Я привык к Windows Forms. Итак, новая деятельность, как новая форма? И как я могу назвать новую деятельность? Я не совсем понимаю, как это сделать. = S lol. Ох, и что я делаю с кнопками радио, это правильно или есть другой лучший способ сделать это? Спасибо – user959631

+1

Не знаю, что сказать вам, если вы даже не знаете таких оснований. Я рекомендую вам посмотреть этот учебник, чтобы получить некоторые знания. Это помогло мне в начале http://vimeo.com/20405301 – mironych

+0

ОК, lol, спасибо за ссылку. Но, как я уже сказал, я только что начал MonoDroid. В любом случае спасибо. – user959631

 Смежные вопросы

  • Нет связанных вопросов^_^