1

私には2つの活動があります。アクティビティ 1 とアクティビティ 2。アクティビティ 1 からアクティビティ 2 を呼び出すと、アニメーションが表示されます。

私が与えた種類のアニメーションは、アクティビティ 1 が右側に移動し、アクティビティ 2 が左側から右側に移動し、アクティビティ 1 の位置を取る (->アクティビティ 2->アクティビティ 1->) というものです。私はそれをうまくやることができます。アクティビティ 2 を呼び出すとすぐに、アクティビティ 1 を終了します。

今、アクティビティ 2 からアクティビティ 1 を呼び出そうとしています。アクティビティ 2 を左側に移動し、アクティビティ 1 を右側から左側に移動して、アクティビティ 2 の位置を取る必要があります (<-アクティビティ 2<-アクティビティ 1<- )。アクティビティ 1 を呼び出すと、アクティビティ 2 が終了します。問題は、これを実行しようとすると、アクティビティ 1 が 2 回表示されることです。

問題はこのようなもので、アクティビティ 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アクティビティの戻るボタン

finish(); を呼び出すだけです。

于 2012-11-23T13:22:03.750 に答える