在android中调用上一个活动时无法执行动画



我有两个活动。活动1和活动2。当我从活动1调用活动2时,我已经给出了动画。

我给出的动画是,活动1应该移动到右侧,活动2应该从左侧到右侧,并占据活动1的位置(->activity2->activity1->)。我成功地做到了。我一调用活动2就要完成活动1。

现在我正尝试调用活动2中的活动1。我希望活动2移动到左侧,活动1应该从右侧到左侧,并采取活动2的位置(<-活动2<-activity 1<)。当我调用活动1时,我正在完成活动2。问题是,当我尝试这样做时,活动1会出现两次。

问题是这样的,当我按下从活动2调用活动1的按钮时,活动1突然出现,没有任何动画。然后活动1消失,活动1再次出现。

以下是我用于从活动1转移到活动2的xml代码:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false">
<translate android:fromXDelta="-100%" android:toXDelta="0%"
android:fromYDelta="0%" android:toYDelta="0%"
android:duration="700"/>
</set>

以下是我用于从活动2转移到活动1的xml代码:

<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false" >
<translate android:fromXDelta="0%" android:toXDelta="-100%"
android:fromYDelta="0%" android:toYDelta="0%"
android:duration="700"/>
</set>

以下是从活动1转移到活动2的代码:

Intent intent=new Intent();
intent.setClassName(Generator.this,"com.xyz.activity2");
startActivity(intent);
finish();
overridePendingTransition(R.anim.left_to_right, R.anim.left_to_right);

以下是从活动2转移到活动1的代码:

Intent intent=new Intent();
intent.setClassName(MainMenu.this,"com.xyz.activity1");
startActivity(intent);
finish();
overridePendingTransition  (R.anim.right_to_left, R.anim.right_to_left);

使用此。。。。

在Activity.java 中

Intent i = new Intent(A_Acitivity.this,B_Activity.class);
startActivityForResult(i,100);

这是OnActivityResult方法。。。

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
overridePendingTransition  (R.anim.right_to_left, R.anim.right_to_left);
}

onCreate()of B Activity.java

overridePendingTransition(R.anim.left_to_right, R.anim.left_to_right);

在B活动的后退按钮上

只需调用finish();

我已经测试了您的代码。并对其进行了一些编辑。只需在调用新的intent之前调用finish()函数即可。

finish();
Intent intent=new Intent();
intent.setClassName(Generator.this,"com.xyz.activity2");
startActivity(intent);
overridePendingTransition(R.anim.left_to_right, R.anim.left_to_right);

这在我的设备中运行良好。让我知道它是否对你有效。

最新更新