2013-05-20 6 views
7

Я переопределяю функцию OnBackPressed внутри своей деятельности, но она не называется. На других мероприятиях он работает нормально. Вот мой метод:OnBackPressed не называется?

@Override 
public void onBackPressed() { 
    Log.e("back",""+1); 
    UserPage.getstate().finish(); 
    Intent i=new Intent(CreateGroup.this,UserPage.class); 
    i.putExtra("title11","dd"); 
    startActivity(i); 
    finish(); 
} 

Этот метод не вызывается, и по умолчанию OnBackPresssed называется каждый раз, когда я нажимаю кнопку назад.

+3

Что такое «UserPage.getstate(). Finish();» делать? –

+0

у вас есть этот Log.e ("назад", "" + 1); в журнале? –

+0

Я использовал статическую функцию в UserPage, чтобы получить состояние активности, а затем закончу ее. –

ответ

7

Попробуйте этот код

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_BACK) { 
     Log.e("back",""+1); 
     UserPage.getstate().finish(); 
     Intent i=new Intent(CreateGroup.this,UserPage.class); 
     i.putExtra("title11","dd"); 
     startActivity(i); 
     finish(); 
    } 
    return true; 
} 
+0

У меня есть alrady, попробовал это, и он не работает. –

+0

Я использую методы onStop и onRestart в ActivityPage Activity. Имеет ли это какое-либо отношение к этому? –

+0

Отдельная форма, изменяющая активность, вы видите запись? Или кнопка «Назад» тоже не работает? Какая у вас версия Android для Android? –

4

Вы пробовали это? ,

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) { 
     // do something on back pressed. 


     return true; 
    } 

    return super.onKeyDown(keyCode, event); 
} 
2
@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_BACK) { 
     Log.e("back",""+1); 
     UserPage.getstate().finish(); 
     Intent i=new Intent(CreateGroup.this,UserPage.class); 
     i.putExtra("title11","dd"); 
     startActivity(i); 
     finish(); 
     return true; 
    } 

    return super.onKeyDown(keyCode, event); 
} 
6

была аналогичная проблема. Проблема для меня была в моем переопределении onKeyDown(), скрывающем события keydown KEYCODE_BACK.

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