2013-12-16 10 views
3

Я немного новичок в разработке для Android-устройств, поэтому, если мой вопрос тривиален, извините, но я не смог решить это примерно 6 часов. У меня проблема с общим меню. Я могу правильно показать меню, а также заставить все работать в ответ. Проблема в том, что активность, на которую я вызываю ее, зависает после выполнения. у меня есть:После выбора опции из меню Activity freezes

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    super.onCreateOptionsMenu(menu); 
    MenuInflater inflater = getMenuInflater(); 
    inflater.inflate(R.menu.options_menu, menu); 
    return true; 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    super.onOptionsItemSelected(item); 
    switch (item.getItemId()) { 
     case R.id.new_game: 
      return true; 
     default: 
      return super.onOptionsItemSelected(item); 
} 

Я попытался удалить всю логику из корпуса блока, который вы видите здесь, но эффект такой же, как и раньше. После того, как я нажимаю элемент меню, который принадлежит «R.id.new_game», активность зависает. Это не полное приложение, которое зависает, потому что я могу снова открыть меню и выбрать тот вариант, который я хочу. Однако все элементы (например, кнопки ...) отключены.

Я также попытался перенаправить на другое действие - он работает хорошо, но если я использую кнопку «Назад» на мобильном устройстве, действие заморожено.

+0

Кажется, что ваша проблема не в том коде, который вы предоставили. Вызывается ли что-нибудь еще или прекращается, когда вы нажимаете на меню? – GLee

+0

Нет, нет. – Ademar

ответ

0

попробовать и:

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    // super.onOptionsItemSelected(item); <- remove this line 
    switch (item.getItemId()) { 
     case R.id.new_game: 
      return true; 
     default: 
      return super.onOptionsItemSelected(item); 
} 

дикое предположение, хотя, так что извините, если не решить эту проблему. ваш код работает во вновь созданном приложении, но я никогда не видел вызов супер, прежде чем возвращать его в ветку по умолчанию.

+0

Вы правы. У меня тоже не было этого. Однако в некоторых поисках я нашел мнение, что неплохо дать его там. После того, как он прокомментировал это, он все еще зависает. В любом случае, спасибо за ответ. – Ademar

+0

как вы решили эту проблему? –

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