Android - 当按下返回键时设置动画 - 不起作用

3

在我的主活动中,我设置了这个覆盖方法来改善我的动画活动:

overridePendingTransition(R.anim.pull_in_from_right, R.anim.pull_out_to_left);

在我的第二个活动中,我将onBackPressed()方法设置为主活动:
public void onBackPressed()
    {
        Intent backToMain = new Intent(this, MainActivity.class);
        startActivity(backToMain);
        super.onBackPressed();
    }

这个问题可以得到良好的解决,加上动画效果后,在从第二个活动返回主活动并关闭它时,第一个主活动仍然存在。

如何解决这个问题?感谢您的友好回应。


你好 Edward,欢迎来到 SO。如果你的问题已经被回答,请选择一个有效的答案,谢谢:) - m0skit0
亲爱的m0skit0:我是否已经为有效答案投票?如果是,请告诉我。因为我只知道如何这样做。感谢您的建议。 - Edward Sullen
是的,你选择了正确的答案。再次欢迎来到 StackOverflow :) - m0skit0
2个回答

14
在你的第二个活动中,你不需要创建新的意图来返回到主活动。
public void onBackPressed(){
   //you can do your other onBackPressed logic here..

   //Then just call finish()
   finish();
}

编辑:在看到提问者的评论后

@Override
protected void onPause(){
  super.onPause();
  overridePendingTransition(R.anim.your_exit_animation_one, R.anim.your_exit_animation_two);
}

public void onBackPressed(){
   //you can do your other onBackPressed logic here..

   //Then just call finish()
   finish();
}

谢谢您的回答。但是当我删除调用新意图时,动画就无法工作了。 或者我在我的主要活动中做错了什么:public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); overridePendingTransition(R.anim.pul_in_from_left, R.anim.pull_out_to_right); setContentView(R.layout.activity_main); - Edward Sullen
不需要调用 finish(),直接调用 super.onBackPressed(); 即可。 - Mohammed Azharuddin Shaikh
@Krishnabhadra:仍然没有动画加载:( @-hotveryspicy:finish()和super.onBackPressed()都很好用,谢谢。 - Edward Sullen

1

你只需要添加一个覆盖方法

@Override
public void finish() {
   super.finish();
   overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接