0

のアプリがあり3 Activitiesます。初めてアプリを実行する場合は、このような流れになります

 Activity 1 ---> Activity 2 ---> Acitvity3

最初の実行でない場合は、スキップする必要がありますActivity2

 Activity 1 --->  Acitvity3

アクティビティ 3 は、アクティビティ 2 からのデータを想定しています。

    Bundle b = getIntent().getExtras();
    Integer mInt= b.getInt(filename);

アクティビティ 1 はこのデータを送信しないため、アクティビティ 3 がアクティビティ 1 から開始された場合 (つまり、最初の実行ではない場合)、アプリが強制的にクラッシュします。getExtrasActivity1によって呼び出された場合、Activity3でのチェックをスキップできる方法はありますか??

4

3 に答える 3

1

Android では、現在のアクティビティを呼び出したアクティビティを取得する方法はありません。考えてみてください。呼び出し元の「アクティビティ」はホームページかもしれません。

代わりに、エクストラで別の変数を渡して、どのアクティビティが新しいアクティビティを呼び出しているか (単純な文字列、または Class オブジェクト) を渡してみてください。次に、どのアクティビティが呼び出されているかに応じて、単純な " if」ステートメント。

お役に立てれば :)

于 2013-11-07T09:09:11.357 に答える
0

どのアクティビティが Activity3 を開始したかを判断するフラグとしてブール値のエクストラを追加します。エクストラから mInt を取得しようとする前に、最初にブール値を読み取ります。これは、Activity 1 の Intent 起動 Activity 3 で false に設定し、Activity2 の Intent で true に設定します。

于 2013-11-07T09:10:40.603 に答える