0

アプリケーションがあります。3 つのアクティビティ A、B、C があるとします。

A->B(サブアクティビティ)->C(サブアクティビティ)。

次のアクティビティに切り替えるために、これらの親切なコードを設定しました。

 setContentView(R.layout.B);

問題は、アクティビティ B または C の実行中にエミュレータまたは電話の [戻る] ボタンをクリックすると、アプリケーション ウィンドウが閉じてホームに戻ることです。アクティビティ C の戻るボタンを押すと、最初にアクティビティ B に移動し、次に A に移動し、その後もう一度クリックして戻るボタンを押すと、ホーム画面になるか、アプリケーション ウィンドウが閉じます。

コードにメソッドや何か問題があるか、編集する必要がありますか?

4

4 に答える 4

0

setContentViewを使用しているため、アクティビティを切り替えていません。

実際には、ただ 1 つのアクティビティの内容を変更しているだけです。これは、戻るボタンを押すとアプリケーション ウィンドウが閉じられる理由を説明しています。

アクティビティ A / コンテンツ A -> アクティビティ A / コンテンツ B -> アクティビティ A / コンテンツ C

アクティビティから別のアクティビティに移動する場合: Intent と startActivity を使用する必要があります。

たとえば、これを実装するボタンの onClick 関数内にボタンを実装します。

Intent i = new Intent(this, ActivityTwo.class);
startActivity(i); 

また、ActivityTwo.javaという名前の別の Java ファイルで、Activityを拡張するクラス ActivityTwo を実装し、 onCreate メソッド内でコンテンツ Bと同等の別のビューを設定します。

あなたのアプリケーションスキームは次のようになります。

アクティビティ A / コンテンツ A -> アクティビティ B / コンテンツ B -> アクティビティ C / コンテンツ C

アクティビティ C で [戻る] ボタンを押すと、アクティビティ B に移動します。

于 2013-05-19T02:02:23.013 に答える
0

メソッドが示すように、アクティビティ AsetContentViewのコンテンツ ビューを変更しているだけです。アクティビティのライフサイクルと新しいアクティビティを開始する方法を確認し、タスクとバック スタックを読んで詳細を確認してください。startActivity

于 2013-05-19T01:17:07.333 に答える