2011-03-30 73 views
0
public void onBackPressed() 
    { 
     Intent setIntent = new Intent(this,xxxxx.class); 
     startActivity(setIntent); 
     return; 
    } 

我打電話onBackPressed()一個活動的處理髮生well.but它再次(即)調用同樣的活動。如果我們按早在Android手機以前的onCreate( )方法無法在正常的操作中調用,如果我們覆蓋'onBackPressed()'onCreate()根據上面的代碼調用。所以我們如何在沒有onCreate()的幫助下開始活動。如何調用onBackPressed()的活動類 - 機器人

+0

只是不要重寫此方法的正常後退行爲。 – ernazm 2011-03-30 08:34:49

回答

0

最後我找到了上述問題的答案。使用活動組來保存切換類,並在按下後退時減少一個值(一個活動)。以下是對你有用:

切換從一個活動到另一個活動

創建ArrayList的歷史,而開關從一個活動到另一個補充該特定視圖中的歷史

View view = getLocalActivityManager() 
    .startActivity(
    getString(R.string.hometab), 
    new Intent(this, Sample.class) 
     .addFlags(Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT) 
).getDecorView(); 
FinderActivityGroup.finderGroup.replaceView(view); 

回去按下

當按下時減少(減去)以下代碼的歷史記錄

if (history.size() > 0) { 
    history.remove(history.size() - 1); 
    setContentView(history.get(history.size() - 1)); 
} 
else { 
    finish(); 
} 
return; 

我們正在減少的歷史意味着onCreate()方法不能再次調用,這是行爲像正常的後退按下。

+1

這是複製/粘貼藝術性,沒有鏈接到原始來源。一個這樣的地方 - http://stackoverflow.com/questions/6926265/android-tab-navigation – kellogs 2011-08-14 09:02:38

0

之前return您可以撥打finish();。和/或代替return致電super.onBackPressed();

+0

我嘗試過,但它不是正確的答案 – NandaKumar 2011-04-05 08:51:24

0

下面是一個簡單的方法: 只需添加完成();迴歸的; 這不會讓堆積累。

public void onBackPressed() 
{ 
    Intent setIntent = new Intent(this,xxxxx.class); 
    startActivity(setIntent); 
    finish(); 
}