2014-01-15 3 views
0

Я использую этот код, чтобы открыть новый вид деятельностиonBackPressed метод и OnKeyDown не работают должным образом

View view = getLocalActivityManager().startActivity("recently_viewd", 
         new Intent(context,Job_Description.class) 
        .putExtra("line", result) 
        .putExtra("limit",0) 
        .putExtra("Alert", false) 
        .putExtra("str_Descrption",edit_Jobdesc.getText().toString().trim()) 
        .putExtra("str_location", edit_JobLoc.getText().toString().trim()).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)) 
         .getDecorView(); 

       setContentView(view); 

И в Job_Description.class я хочу, чтобы обрабатывать андроид клавишу возврата. Я переопределяю метод OnBackPressed() на Job_Description.class, но он не работает.

@Override 
public void onBackPressed() { 
    super.onBackPressed(); 
    Toast.makeText(this, "BAck Click", Toast.LENGTH_LONG).show(); 
    finish(); 
     startActivity(new Intent(context, Tab_Bar.class)); 
return; 
} 

после этого я реализую метод OnKeyDown(), но он также не работает.

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) { 
       Toast.makeText(this, "BAck Click", Toast.LENGTH_LONG).show(); 
     finish(); 
      startActivity(new Intent(context, Tab_Bar.class)); 
     return true; 
    } 

    return super.onKeyDown(keyCode, event); 
} 

Пожалуйста, помогите мне, как я могу обрабатывать кнопку назад Заранее спасибо.

ответ

3

Использование так:

@Override 
public void onBackPressed() { 

    Toast.makeText(this, "BAck Click", Toast.LENGTH_LONG).show(); 
    finish(); 
     startActivity(new Intent(context, Tab_Bar.class)); 
super.onBackPressed(); 
return; 
} 
0

Просто написать:

@Override 
public void onBackPressed() { 
super.onBackPressed(); 
finish(); 
Toast.makeText(this, "BAck Click", Toast.LENGTH_LONG).show(); 
startActivity(new Intent(context, Tab_Bar.class)); 
} 

Он будет работать ..

0

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

startActivity(new Intent(context, Tab_Bar.class));  
finish(); 

А также, так как вы обработки кнопку назад, не называйте super.onBackPressed(); вообще. Потому что то, что он делает, заканчивает текущую деятельность, но вы уже это делаете.

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