2011-03-30 50 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(); 
}