2012-01-17 3 views
0

Это определенно стрельба, потому что я могу только на минутку увидеть, как открывается диалоговое окно, но в любом случае экран возвращается. Как остановить работу кнопки «Назад»? Мое устройство на Gingerbread, и мой Min SDK является 10.MonoDroid OnBackPressed Not Working

public override void OnBackPressed() 
    { 

     base.OnBackPressed(); 

     TableLayout tl = (TableLayout)FindViewById(Resource.Id.myEquip); 
     int cnt = tl.ChildCount; 
     for (var i = 0; i < cnt; i++) 
     { 
      TableRow tr = (TableRow)tl.GetChildAt(i); 
      TextView tv = (TextView)tr.GetChildAt(0); 

      if (tv.Text != "Equipment not found at current store") 
      { 
       Dialog d = inst2.showBuilder(this, "test", tv.Text); 
       d.Show(); 
      } 
     } 
     return; 
    } 

ответ

2

Вы звоните base.OnBackPressed(), поэтому вы все еще получаете поведение по умолчанию. Если вы не хотите, чтобы система обрабатывала кнопку «Назад», вы не должны вызывать этот метод. Тем не менее, в большинстве случаев вы не должны препятствовать работе кнопки возврата, поскольку это может быть очень странно для пользователя. Например, если вы создаете веб-браузер: нажатие назад вернется на предыдущую страницу, если оно есть, и вызовите base.OnBackPressed(), если больше страниц осталось.

+0

Это сработало. Единственная причина, по которой мне нужна эта функциональность, - это то, что я могу предупредить/остановить пользователя от резервного копирования до заполнения необходимых полей. Если все будет правильно, они все равно вернутся. В противном случае появляется диалоговое окно с вопросом, уверены ли они, что они хотят уйти до того, как они закончатся. – jmease