0

私はアンドロイドの開発が初めてです。戻るボタンを押すと問題が発生します。

仕上げを使用すると、その特定のビューが破壊されます。次に戻るボタンを押すと、アプリが終了します。戻るボタンで制御されたナビゲーションが必要です

たとえば、これらは私の活動A、B、C、Dです

私の流れは

アクティビティ A から B から C から D から A へ

ユーザーは D から A の間を移動できます

しかし、ユーザーが D から A に移動するとき

彼が戻るボタンを押したらまた

他のアクティビティに移動しないでください

助けてください

4

6 に答える 6

0

試してみてください Activity A に入力するだけです そのままで何も変わりません

@Override public void onBackPressed() {

}
于 2013-04-30T08:03:43.157 に答える
0

バックプレスでアクティビティの状態を保持したいのですが、その上で他のアクティビティを開始する前にfinish()メソッドを呼び出さないでください。android:noHistory="true"マニフェスト ファイルにエントリがない場合、[戻る] ボタンを押すと、Android が前のアクティビティに移動します。

于 2013-04-30T07:37:33.140 に答える
0

アクティビティが別のアクティビティから呼び出されるたびに、アクティビティのライフ サイクルに従って、呼び出し元のアクティビティがスタックに入ります。A から B に移動すると、A がスタックに格納され、B が開かれます。ボタンを押したときに、(A から B から C から D から A)、(D から A またはその逆) に移動したいが、B から A または C から B または D から C または A から D には移動したくない。

B からアクティビティ C を呼び出す場合は、finish() を呼び出して B を破棄します。同様に、C から D を呼び出して C を破棄する場合も、後戻りできないようにします。これにより、フローが制限されます。

クラスAはActivityを拡張します{

//ボタンクリック

Intent intent=new Intent(A.this,B.class);
startactivity(intent);

}

クラスBはActivityを拡張します{

//ボタンクリック

Intent intent=new Intent(B.this,C.class);
startactivity(intent);
finish();

}

クラスCはActivityを拡張します{

//ボタンクリック

Intent intent=new Intent(C.this,D.class);
startactivity(intent);
finish();

}

クラスDはActivityを拡張します{

//ボタンクリック

Intent intent=new Intent(D.this,A.class);
startactivity(intent);

}

このように、A から B へ -> A がスタックに格納され、B から C -> B が破棄され (finish を使用)、C から D -> C が破棄され、D から A に直接移動できます。戻るボタンを使用。D から A に移動した後にもう一度戻るボタンを押すと、D になり、もう一度押すと A になり (最初のアクティビティが開始されます)、もう一度押すとアプリが終了します。

于 2013-04-30T08:17:52.660 に答える