在Android上按下后退键问题

时间:2011-06-25 15:54:03

标签: android android-intent

在我的应用中,我有3项活动,我使用onBackPressed进行第一,第二和第三项活动。 我的需要是我想从第一个activity开始 - > second activity - > third activity和 来自third activity - > second activity - > first activity - > finsh()

我通过点击按钮

进行第一次活动 - >第二次活动 - >第三次活动

我的问题是,当我按下模拟器的键时,它按以下方向进行 Third activity - > second activity - > first activity - > second activity - > first activity - > first activity - >和finsh()。我的应用转到finsh() - >而不是second activityfirst activity - > first activity

如何解决问题。我不知道我哪里错了。请帮我。 我的代码:

在第一项活动中:

       Button b1 = (Button)findViewById(R.id.first);
       b1.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
         Intent myintent=new Intent(first.this,second.class);
         startActivity(myintent);
          }
      });
    ......
public void onBackPressed() {
    Log.e("main-back","main-back");
    finish();
    super.onBackPressed();
}

在第二项活动中:

    Button b2 = (Button)findViewById(R.id.second);
    Log.e("main2", "main2");
    b2.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
         Intent myintent=new Intent(second.this,third.class);
         startActivity(myintent);
          }
      });        
    ........

@Override
public void onBackPressed() {
    Intent myintent=new Intent(second.this,first.class);
    startActivity(myintent);
    super.onBackPressed();
}

第三项活动:

public void onBackPressed() {
    Intent myintent=new Intent(third.this,second.class);
    startActivity(myintent);
    super.onBackPressed();
}

2 个答案:

答案 0 :(得分:2)

停止在方法onBackPressed中启动活动(我假设这是您要完成当前活动的方法)。

所以在第二个和第三个活动方法onBackPressed中调用finish(),就像第一个活动onBackPressed方法一样。

答案 1 :(得分:0)

Button b2 = (Button)findViewById(R.id.second);
    Log.e("main2", "main2");
    b2.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
         Intent myintent=new Intent(second.this,third.class);
         startActivity(myintent);
          }
      });        

@Override
public void onBackPressed() 
{
    Intent myintent=new Intent(second.this,first.class);
    second.this.finish();
    startActivity(myintent);
    super.onBackPressed();
}

试试吧。