在我的应用中,我有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 activity
。 first 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();
}
答案 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();
}
试试吧。