9

ここに画像の説明を入力してください

画像で説明されているように、流れはこのようなものです。したがって、ユーザーがロゴボタンをクリックするたびにアクティビティAを呼び出す必要があります。簡単な解決策として、この方法を使用できます...

Intent intent = new Intent(activity, activityToStart);
startActivity(intent);

しかし、このアクティビティは私のアプリに新しいアクティビティを作成します。ただし、フロー図を進めるときに、アクティビティの同じインスタンスを呼び出す必要があります。アクティビティAからBに、そして再びBに戻るには、を呼び出すことで簡単に呼び出すことができますfinish()が、アクティビティCまたはDから、Aに戻る方法を説明します。

アイデアが足りなくなりましたが、実りある結果は得られていません。何か提案があったり、どこかで私が間違っている場合は、私を助けてください。前もって感謝します。

4

5 に答える 5

19

DからAに戻るには、インテントフラグを使用します。

Intent intent = new Intent(activity, activityToStart);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
startActivity(intent);

FLAG_ACTIVITY_CLEAR_TOPは、新しいアクティビティを作成する代わりに、スタック上のアクティビティを呼び出し、呼び出されているアクティビティの上にすべてのアクティビティをポップします。

于 2012-07-30T05:34:11.500 に答える
1

使用する代わりに

Intent intent = new Intent(activity, activityToStart);
startActivity(intent);

使用する

Intent intent = new Intent(activity, activityToStart);
startActivityforResult(intent,1234);

これにより、アクティビティAが強制終了されないことが確認され、アクティビティCを終了すると、アクティビティAが再開されます。

:-ホストアクティビティを終了(終了)せずに新しいアクティビティを作成するたびに、ホストアクティビティはLIFOの順序でスタックに保存されます

LIFO:-Last In First Out

于 2012-07-30T05:37:50.127 に答える
0

アクティビティAを「シングルタスク」にすることで、これを達成できます。ホームボタンをクリックしてアクティビティがシングルタスクにある場合、他のアクティビティはスタックから削除されます。

Android Activitesの詳細については、これらのリンクを参照してください...

リンク1-Androidの基礎

リンク2-別の同様の質問

于 2012-07-30T05:37:36.733 に答える
0

ViewFlipperを使用して、同じアクティビティ内の異なるウィンドウ間を行き来します。

ViewFlipper vf = (ViewFlipper) findViewById( R.id.view_flipper);

次のウィンドウに移動するには

vf.showNext();

前のウィンドウに移動するには

vf.showPrevious();
于 2012-07-30T05:37:39.583 に答える
0

よくわかりませんが、これが正しいかどうかはわかりませんが、試してみてください。

Activity-Bから開始して新しいアクティビティを開くと、現在のアクティビティをfinish()できます。

すなわち

Activity-Cを開くには=>Activity-Bを終了し、Activity-Cを開始します

Activity-Dを開くには=>Activity-Cを終了し、Activity-Dを開始します

押し戻すと、Activity-Aが開きます。

于 2012-07-30T05:38:21.830 に答える