2012-03-05 4 views
9

Я хочу реализовать функциональность кнопки back в моем приложении. В приложении всякий раз, когда я нажимаю кнопку «Назад» в середине, мой элемент управления напрямую переходит на страницу входа в систему, так что может кто-то сказать мне, где переопределить onKeyDown() или onBackPressed() методов?onKeyDown() или onBackPressed()

public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_BACK) { 
     Log.e("back key pressed","Back key pressed"); 
     return true; 
    } 
    return super.onKeyDown(keyCode, event); 
} 

, потому что я пишу это в OnCreate и за ее пределами OnCreate также, но это не работает ......

+0

В общем, методы, такие как 'OnKeyDown()' или 'onBackPressed()' должны быть переопределение (вы можете воспользоваться IDE, то есть, Eclipse, чтобы сделать это красиво), так что они должен быть из 'onCreate()'. Не могли бы вы точно объяснить свою проблему? Что не так? – Huang

+0

Посмотрите на этот ответ: http://stackoverflow.com/a/3558613/571353 – SERPRO

+1

добавьте @Override над функцией ... ??? – mihail

ответ

7

В зависимости от того, хотите ли вы поддерживать до Android 2.0 телефонов. Метод onBackPressed() был добавлен в Android 2.0 (API 5).

Вы можете прочитать этот пост на блоге разработчиков Android для деталей:

http://android-developers.blogspot.com/2009/12/back-and-other-hard-keys-three-stories.html

+0

thanku man, но где написать этот метод ????, потому что я пытаюсь написать этот метод внутри onCreate и вне стороны onCreate также, но все же контроль не идет внутри метода, вы можете помочь мне с помощью простого ответа ??? – user1249134

+0

Спасибо всем ... :-))))) вы, ребята, блестящие ............. – user1249134

3

Да, вы можете переопределить кнопку назад

public void onBackPressed() { 

    Intent start = new Intent(currentclassname.this,which activity u want.class); 
     startActivity(start); 
     finishActivity(0); 
     } 

К этому вы можете двигаться на любую деятельность. Это очень легко и просто.

1

Если вы беспокоитесь об удалении активности входа из стека истории.

Execute finish(); в вашей активности входа, когда вы начинаете любое другое действие с этого

+0

3-05 14: 13: 56.327: W/KeyCharacterMap (374) : Использование ключевой карты по умолчанию: /system/usr/keychars/qwerty.kcm.bin – user1249134

+0

HELLO друзья мой контроль не входит в метод OnBack? Может ли любой орган помочь в исправлении этого? – user1249134

+0

Intent edit = new Intent (getParent(), MyGroup.class); \t \t TabGroupActivity parentActivity = (TabGroupActivity) getParent(); \t \t parentActivity.startChildActivity («Добавить контакты», изменить); – user1249134

3

см. ниже код. написать вне OnCreate

@Override 
    public boolean onKeyDown(int keyCode, KeyEvent event) 
    { 
     //replaces the default 'Back' button action 
     if(keyCode==KeyEvent.KEYCODE_BACK) 
     { 

       Intent intent = new Intent(currentActivity.this, RequiredActivity.class); 
       finish(); 
       startActivity(intent); 

     } 
     return true; 
    } 
Смежные вопросы