2014-01-15 40 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我要處理的Android返回鍵。 我重寫Job_Description.class上的OnBackPressed()方法,但它不起作用。

@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();。因爲它所做的是完成當前的活動,但你已經在做它。