1

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

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

现在我试图从活动 2 中调用活动 1。我希望活动 2 移动到左侧,活动 1 应该从右侧到左侧并占据活动 2 的位置(<-活动 2<-活动 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);
4

2 回答 2

1

我已经测试了你的代码。并对其进行了一些修改。只需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);

这现在在我的设备上运行良好。让我知道它是否对您有用。

于 2012-11-23T13:08:56.900 回答
1

用这个....

在一个 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);

    }

B Activity.java 的 onCreate()

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

在 B Activity 的后退按钮上

只需调用完成();

于 2012-11-23T13:22:03.750 回答